서의 공간

CMake는 무슨 프로그램인가 본문

Misc.

CMake는 무슨 프로그램인가

홍서의 2020. 11. 21. 16:51

1.

Windows 환경에서 특정 프로그램을 실행하기 위해서는

독립적인 실행파일(.exe)을 통해 실행하거나 또는

설치 프로그램(installer)으로 실행파일을 새로이 만든 후 실행하는 방법이 있다.

특정 프로그램을 '설치' 후에 실행하는 것이 일반적이며, 그러한 이유가 몇 가지 있다.

(예) Visual Studio 프로그램을 실행하기 위해서 먼저 인스톨러를 실행하여 Visual Studio를 설치한다.

 

[독립형 실행파일과 설치된 실행파일의 차이점]: qastack.kr/superuser/685038/difference-between-a-stand-alone-executable-file-and-an-installed-executable

 

  • 파일 크기 
  • 사용자 편의성
  • 호환성
  • 높은 권한의 필요

 

2.

CMake 프로그램이 무엇인지 얘기하기 전에,

프로그램이 어떻게 만들어지는지 그 과정을 살펴보면

 

소스코드 작성 -> 전처리기(preprocessor) -> 컴파일(compile) -> 어셈블러 -> 링크 -> 실행파일 생성

 

이 여러 단계에서 우리는 IDE가 있기 때문에 build버튼 한 번으로

[전처리기 -> 컴파일 -> 어셈블러 -> 링크 -> 실행파일 생성] 단계를 한 번에 처리할 수 있게 된다.

그러나 Visual Studio 버전마다 또는 다른 IDE 마다 소스코드를 관리하는 방식이 모두 다르기 때문에 개발자 입장에서는 

소스코드를 배포하기 앞서 사용자 환경에 맞게 빌드가 되도록 만들어야 한다. 

예를 들어 내가 Visual Studio 2017 버전에서 만든 소스코드를 배포하였지만,

다른 사용자들의 환경이 나와 다르다면 내 소스코드를 오류 없이 빌드할 수 없을 것이다.

바로 여기서 CMake라는 프로그램이 쓰인다.

CMake는 해당 소스코드를 가지고 사용자 환경에 맞춰 솔루션 파일을 만들어 문제없이 빌드될 수 있도록 만들어준다.

물론 개발자가 배포하기 전에 먼저 CMakeLists라는 것을 작성하여 빌드 방법을 정의해야만 가능하다.

 

결국 외부의 소스코드로부터 내가 직접 빌드하여 실행파일을 만드려고 하는 것.

또는 다른 사람들이 만든 모듈을 내 프로그램 개발에 사용하기 위해서 빌드하는 상황에서도 쓰인다.

예를 들어 assimp 라이브러리를 사용하려면

'내 환경'에 맞는 라이브러리가 필요하고

CMake를 이용하면 문제없이 빌드할 수 있게 되어

'내 환경'에 맞는 라이브러리 파일을 얻을 수 있다.

 

씹어먹는 C++ - <19 - 1. Make 사용 가이드 (Makefile 만들기)> (modoocode.com)

Comments