2 minute read

이 글은 CMAKE의 공식 투토리얼을 따라가면서 정리한 글입니다.

What is CMAKE?

이 섹션은 Notion AI에 의해 작성되었습니다. 한 번 읽어보세요 :)

CMake는 컴파일러 독립적인 방법을 사용하여 소프트웨어 빌드 프로세스를 관리하는 크로스 플랫폼 오픈 소스 도구입니다. CMake는 Windows, Linux 및 macOS를 포함한 다양한 플랫폼을 지원하며 네이티브 메이크 파일 및 작업 공간을 생성할 수 있습니다.

CMake는 프로젝트 및 해당 속성을 정의하는 CMakeLists.txt 파일을 사용합니다. 이 파일에는 프로젝트 이름, 버전, 소스, 라이브러리 및 종속성에 대한 정보가 포함되어 있습니다. CMake는 Unix Makefiles, Ninja 및 Visual Studio 솔루션을 포함한 다양한 빌드 시스템에 대한 메이크 파일을 생성할 수 있습니다.

CMake는 전통적인 빌드 시스템보다 다양한 이점을 제공합니다. 개발자가 프로젝트를 정의하고 구성할 수 있는 통합 인터페이스를 제공하여 빌드 프로세스를 단순화합니다. 또한 복잡한 빌드 시스템 및 종속성을 관리하기가 더 쉬워집니다. 게다가 CMake는 쉬운 크로스 컴파일을 가능하게 하므로 멀티 플랫폼 프로젝트에 이상적인 선택입니다.

결론적으로, CMake는 소프트웨어 빌드 프로세스를 관리하기 위한 강력한 도구입니다. 크로스 플랫폼 호환성과 사용 편의성으로 인해 개발자들 사이에서 인기가 많습니다. 빌드 시스템을 신뢰성 있고 효율적으로 관리하기 위한 안정적이고 효율적인 방법을 찾고 있다면 CMake는 분명한 시도가 가치가 있습니다.

CMake를 처음 사용하는 경우 처음에는 약간 어려울 수 있습니다. 그러나 온라인에서 사용 가능한 많은 자료들이 도움이 될 수 있습니다. 공식 CMake 웹 사이트에는 기본 사용법부터 고급 주제까지 모든 것을 다루는 상세한 문서 및 튜토리얼이 있습니다. 또한 CMake를 효과적으로 사용하는 데 더 많은 통찰력을 제공하는 많은 제3자 튜토리얼 및 블로그 게시물이 있습니다.

CMake를 사용할 때 염두에 둘 중 하나는 매우 맞춤화 가능하다는 것입니다. 이는 빌드 프로세스를 특정 요구 사항에 맞게 조정할 수 있다는 것을 의미합니다. 그러나 이는 CMake를 마스터하는 데 학습 곡선이 있을 수 있다는 것을 의미합니다. 참을성을 가지고 도구의 모든 것을 배우는 시간을 가질 필요가 있습니다.

전반적으로, CMake는 소프트웨어 프로젝트의 빌드 프로세스를 간소화하고 최적화하는 다재다능하고 강력한 도구입니다. 작은 프로젝트나 대규모 엔터프라이즈 애플리케이션을 작업하고 있다 하더라도 CMake는 빌드 시스템을 효율적이고 효과적으로 관리할 수 있도록 도와줍니다. CMake를 사용하면 빌드 프로세스를 더욱 효율적으로 관리할 수 있습니다. 이를 통해 코드를 더욱 효율적으로 빌드하고, 더욱 안정적인 코드를 작성할 수 있습니다.

또한 CMake는 다양한 플랫폼에서 호환성을 보장합니다. 이는 개발자들이 다양한 운영 체제에서 작동하는 코드를 작성할 때 큰 도움이 됩니다. 또한 CMake는 컴파일러 독립적인 방법을 사용하기 때문에 개발자들이 다양한 컴파일러를 사용할 수 있습니다.

CMake는 또한 다양한 라이브러리와 툴킷들을 지원합니다. 이를 통해 개발자들은 다양한 기술 스택을 사용할 수 있으며, 더욱 다양한 프로젝트를 개발할 수 있습니다.

CMake는 대규모 프로젝트에서 특히 유용합니다. 이는 CMake가 대규모 프로젝트의 빌드 프로세스를 효율적으로 관리하기 때문입니다. CMake는 매우 유연하며, 다양한 빌드 시스템을 지원하기 때문에 다양한 프로젝트에서 사용할 수 있습니다.

마지막으로 CMake는 커뮤니티에 의해 지원되는 오픈 소스 도구입니다. 이는 개발자들이 CMake를 사용할 때 다른 개발자들의 지원을 받을 수 있다는 것을 의미합니다. 또한 CMake는 계속해서 업데이트되고 개선되고 있기 때문에 더욱 강력한 빌드 도구로 성장할 것으로 기대됩니다.

How to Build Executable with CMAKE?

cmake로 빌드하는 법

빌드 시스템 빌드하기

cmake를 이용해서 각 운영체제에서 실행가능한 파일을 빌드하는 법은 기본적으로 다음과 같습니다.

  • CMAKELists.txt 최상단에 최소로 요구되는 cmake 버전을 명시해야 합니다.
    • 예) cmake_minimum_required(3.10)
  • 원하는 디렉토리에서 cmake 커맨드를 이용해서 CMAKELists.txt가 있는 디렉토리 즉, cmake 설정 파일이 있는 디렉토리를 호출해 cmake 빌드 시스템을 빌드합니다.
    • 예) cmake ../Dir1
  • CMAKE 설정 파일이 있는 디렉토리에는, CMAKEList.txt와, 소스코드, 그리고 여타 cmake 설정 파일이 포함됩니다.
    • 예) lsCMAKELists.txt main.cpp [headerInput.h.in]…

실행 파일 빌드하기

이렇게 빌드된 “빌드 시스템” 을 빌드해서 바이너리 실행파일을 만듭니다.

  • CMAKELists.txt에 포함되어야 하는것
    • 최소 요구 버전
    • 프로젝트 이름
    • 실행 파일 이름
    • etc…

조금 정리를 하자면, CMAKE를 이용해서 실행가능한 파일을 빌드하려면 빌드를 2번 하면됩니다.

  1. 실행 파일을 빌드 하기위한 각종 설정과 소스 코드를 입력으로 하여 이진 파일을 포함하는 “빌드 시스템” 을 빌드
  2. 빌드 시스템을 입력으로 하여 실행 파일을 실제로 “실행 파일” 을 빌드

조금 더 자세한 내용은 CMAKE 공식 투토리얼을 따라가시면 좋습니다.