본문 바로가기
Linux

MAKE && CMAKE

by Yoon_estar 2024. 4. 19.
728x90
반응형

MAKE / CMAKE

CMake: 크로스 플랫폼 빌드 시스템 생성기

CMake는 복잡한 빌드 환경을 쉽게 관리하고 자동화하기 위해 사용되는 툴입니다. 이 도구는 프로젝트 설정과 빌드 환경을 생성하는 데 중점을 둡니다. 특히 다양한 플랫폼(Windows, macOS, Linux 등)과 컴파일러에서 일관된 빌드 환경을 제공하고자 할 때 유용합니다.

Cmake의 주요 특징

  • 플랫폼 독립적: CMake는 CMakeLists.txt 파일에 프로젝트의 빌드 과정과 의존성을 기술하고, 이를 바탕으로 플랫폼에 맞는 빌드 시스템 파일(예: Makefile, Visual Studio 솔루션 파일 등)을 생성합니다.
  • 구성과 사용의 용이성: 사용자는 간단한 명령어(cmake .)로 다양한 빌드 설정 파일을 자동으로 생성할 수 있습니다. 이 과정에서 CMake는 주어진 시스템 환경을 감지하고 최적화된 빌드 파일을 제공합니다.
  • 재사용성 및 확장성: CMake는 모듈화된 접근을 통해 크고 복잡한 프로젝트의 관리를 단순화하며, 사용자 정의 모듈 및 스크립트를 쉽게 추가할 수 있습니다.

cmake && ccmake

cmake

cmake ..명령은 가장 기본적인 CMake 명령으로, 커맨드 라인에서 직접 사용됩니다. 이 명령은 지정된 소스 디렉토리(여기서는 현재 디렉토리의 상위 디렉토리를 가리킴)의 CMakeLists.txt 파일을 해석하여 빌드를 위한 설정 파일들을 생성합니다. 이 과정은 비대화적으로 실행되어 사용자는 터미널에서 직접 모든 옵션을 지정하거나 기본값을 사용해야 합니다.

사용 예시

mkdir build
cd build
cmake ..

ccmake

ccmake .. 명령은 cmake의 커서 기반 그래픽 인터페이스를 제공합니다. 이 인터페이스는 사용자가 텍스트 기반 UI에서 CMake 설정을 보고 수정할 수 있게 해줍니다. ccmake는 프로젝트의 설정 옵션을 보다 쉽게 조작하고 구성할 수 있는 대화형 방식을 제공하며, 이는 특히 복잡한 프로젝트 설정에서 유용합니다.

사용 방법

  1. ccmake ..를 실행합니다.
  2. 화면에 표시된 메뉴를 사용하여 CMake 변수를 조정합니다.
  3. 'c'를 눌러 구성을 진행하고, 필요한 변경 사항을 적용한 후 'g'를 눌러 생성 과정을 완료합니다.

Make : 빌드 자동화 도구

Make는 특히 Unix-like 시스템에서 널리 사용되는 빌드 자동화 도구입니다. Makefile을 통해 소스 파일의 컴파일 방법과 객체 파일 간의 의존성을 정의하고, 이를 바탕으로 효율적인 빌드 과정을 수행합니다.

주요 특징

  • 직접적인 빌드 스크립트: 사용자는 Makefile을 통해 각 타겟(목표 파일)의 빌드 규칙과 의존성을 상세하게 기술합니다. make 명령을 실행하면 Make는 Makefile을 해석하여 필요한 파일만을 재컴파일합니다.
  • 효율성: Make는 이미 빌드된 객체 파일을 재사용하여 불필요한 컴파일을 방지함으로써 빌드 시간을 최소화합니다.
  • 유연성: 소스 코드가 수정된 부분만을 탐지하고 해당 부분만을 재컴파일함으로써 빌드 과정을 최적화합니다.

두 도구의 상호 작용

CMake와 Make는 함께 사용되어 강력한 빌드 환경을 구성할 수 있습니다. CMake는 다양한 시스템과 환경에서 사용될 수 있는 Makefile 등의 빌드 설정 파일을 생성하고, Make는 이러한 설정 파일을 바탕으로 실제 소프트웨어 빌드를 수행합니다.

 

 

반응형