본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

CMake(씨메이크)는 플랫폼에 맞는 빌드 파일(Makefile, Ninja 파일, Visual Studio 프로젝트 등)을 만들어 주는 오픈 소스 크로스 플랫폼 빌드 시스템 생성기이다.

CMake 는 미국 Kitware 가 2000년에 공개했다. make 는 이미 있는 Makefile 을 읽어 컴파일을 실행할 뿐이고, 그 Makefile 은 운영체제·컴파일러마다 따로 맞춰 써야 했다. CMake 는 프로젝트 쪽에 CMakeLists.txt 하나만 두면, 유닉스 계열에서는 Makefile 을, 윈도우에서는 Visual Studio 프로젝트를 만들어 준다. 그래서 흔히 make 를 대신하는(make 위에서 동작하는) 빌드 도구로 소개되며, 여러 플랫폼을 지원하려는 오픈 소스 프로젝트가 많이 쓴다. KDE 는 KDE 4(2006년)부터, MySQL 은 5.5 판부터 CMake 로 빌드·설치하도록 바꾸었다.

$ tar xzf project.tar.gz && cd project
$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local   # CMakeLists.txt 를 읽어 Makefile 을 만든다
$ make                                         # 만들어진 Makefile 로 컴파일
# make install
  • cmake -S . -B build 와 cmake --build build 처럼 make 를 직접 부르지 않고 빌드할 수도 있다
  • 소스 디렉터리 밖(build)에 결과물을 만드는 out-of-source 빌드가 기본 관례다. 지우고 다시 빌드하기 쉽다
  • 설치 경로는 configure 의 --prefix 대신 -DCMAKE_INSTALL_PREFIX 로 준다

비슷한 도구와 구분

편집 원본 편집
이름 하는 일
CMake CMakeLists.txt 를 읽어 플랫폼별 빌드 파일(Makefile 등)을 만든다. 유닉스 계열과 윈도우를 모두 지원한다
make Makefile 의 규칙대로 컴파일·설치를 실행한다. 빌드 파일을 만들어 주지는 않는다
Autotools(autoconf·automake) GNU 빌드 체계. automake 는 Makefile.am 에서 Makefile.in 을, autoconf 는 configure 스크립트를 만든다. 사용자는 ./configure → make → make install 순으로 설치한다. 유닉스 계열 중심이다
gcc GNU C·C++ 컴파일러. 빌드 도구가 아니라 make·CMake 가 부르는 컴파일러다
Pacemaker 리눅스 고가용성(HA) 클러스터의 자원 관리자. Corosync 와 함께 장애 서버의 서비스를 다른 노드로 옮긴다. 빌드와 관계없다 → 고가용성