> 기타 외부 패키지 > cmake

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

CMake는 운영체제 및 컴파일러에 독립적인 빌드 시스템을 생성하는 도구입니다. 주로 C, C++ 프로젝트에서 사용되며, Makefile, Visual Studio 프로젝트, Xcode 프로젝트 등 다양한 빌드 파일을 생성할 수 있습니다. 이를 통해 개발자는 특정 IDE나 빌드 도구에 종속되지 않고 프로젝트를 관리하고 빌드할 수 있습니다.

개요

CMake는 소스 코드의 빌드 과정을 정의하는 CMakeLists.txt 파일을 기반으로, 사용자가 선택한 빌드 도구(예: Make, Ninja)에 맞는 빌드 스크립트를 생성합니다. 이는 복잡한 프로젝트의 빌드 과정을 표준화하고 자동화하는 데 필수적입니다.

주요 특징

  • 크로스 플랫폼 지원 (Linux, Windows, macOS 등)
  • 다양한 빌드 시스템 생성 (Makefiles, Visual Studio, Xcode 등)
  • 모듈화된 프로젝트 관리 용이
  • 테스트 및 패키징 지원 (CTest, CPack)

주요 옵션

CMake 명령어를 실행할 때 자주 사용되는 주요 옵션들입니다.

기본 설정

빌드 시스템 생성기

빌드 및 설치

정보

생성된 명령어:

명령어를 조합해 보세요.

설명:

`cmake` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

CMake를 사용하여 프로젝트를 설정하고 빌드하는 다양한 시나리오입니다.

기본 빌드 설정 및 Makefile 생성

mkdir build
cd build
cmake ..
make

현재 디렉토리의 소스를 기반으로 'build' 서브디렉토리에 Makefile을 생성합니다.

소스 및 빌드 디렉토리 명시적 지정

cmake -S /path/to/my_project_source -B /path/to/my_project_build

소스 디렉토리와 빌드 디렉토리를 명확히 지정하여 빌드 파일을 생성합니다.

Ninja 생성기 사용 및 릴리즈 빌드

cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release

Ninja 빌드 시스템을 사용하고, 빌드 타입을 릴리즈로 설정하여 빌드 파일을 생성합니다.

CMake를 통해 빌드 실행

cmake --build build

생성된 빌드 시스템(예: Makefile)을 직접 호출하는 대신, CMake 명령어를 통해 빌드를 실행합니다.

빌드된 프로젝트 설치

cmake --install build

빌드된 프로젝트를 시스템의 기본 경로(예: /usr/local)에 설치합니다.

설치

CMake는 대부분의 리눅스 배포판에서 기본적으로 제공되지 않으므로, 패키지 관리자를 통해 설치해야 합니다.

Debian/Ubuntu

sudo apt update
sudo apt install cmake

APT 패키지 관리자를 사용하여 CMake를 설치합니다.

Fedora/RHEL/CentOS

sudo dnf install cmake

DNF 또는 YUM 패키지 관리자를 사용하여 CMake를 설치합니다.

Arch Linux

sudo pacman -S cmake

Pacman 패키지 관리자를 사용하여 CMake를 설치합니다.

팁 & 주의사항

CMake를 효과적으로 사용하기 위한 팁과 주의할 점입니다.

Out-of-Source 빌드

소스 코드 디렉토리와 빌드 디렉토리를 분리하는 'Out-of-Source' 빌드를 항상 사용하는 것이 좋습니다. 이는 소스 디렉토리를 깨끗하게 유지하고, 여러 빌드 설정을 쉽게 전환할 수 있게 해줍니다.

  • 소스 디렉토리 오염 방지
  • 다양한 빌드 설정(Debug/Release) 동시 관리 용이

CMakeLists.txt 파일

CMake의 핵심은 프로젝트의 빌드 규칙을 정의하는 CMakeLists.txt 파일입니다. 이 파일의 문법과 구조를 이해하는 것이 중요합니다.

  • 프로젝트의 루트 디렉토리에 위치
  • 서브디렉토리에도 존재 가능 (add_subdirectory 명령으로 포함)

GUI 도구 활용

복잡한 CMake 프로젝트의 경우, `ccmake` (터미널 기반) 또는 `cmake-gui` (그래픽 기반)와 같은 도구를 사용하여 캐시 변수를 시각적으로 설정하고 관리할 수 있습니다.

  • `ccmake`: 터미널에서 대화형으로 캐시 변수 설정
  • `cmake-gui`: 그래픽 인터페이스로 편리하게 설정

동일 카테고리 명령어