일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 제이펍
- 파이썬
- 데이터분석
- 나는리뷰어다
- C++
- 혼공학습단
- vulkan
- 혼자공부하는네트워크
- 불칸
- 자바스크립트
- 혼공네트
- OpenGL
- 책리뷰
- 컴퓨터그래픽스
- 혼공머신
- 벌칸
- 혼공단5기
- 한빛미디어
- 혼자공부하는C언어
- 네트워크
- tutorial
- 혼공S
- 혼공스
- 머신러닝
- 혼공C
- 혼공
- 혼공컴운
- 혼공단
- 리뷰리뷰
- 딥러닝
Archives
- Today
- Total
Scientia Conditorium
[CMake] CMake란?! 본문
CMake 정의
Cross Platform Make 의 약자로 빌드 과정을 Platform, ToolChain에 비종속적인 방법으로 작성할 수 있음.
빌드 시스템(Build System)이 아닌 빌드 시스템 생성기(Build System Generator).
즉, Visual Studio, XCode와 같은 Native Build System이 사용하는 파일을 생성.
생성 후 Test, Package를 통해 간편하게 실행할 수 있도록 지원
Build System 정의
빌드를 정의하고 수행하기 위한 파일과 도구를 의미
예를 들어 아래와 같은 것들이 있음
- 소스 코드(Source Code)
- 리소스(Resource)
- 컴파일러(Compiler)
- 링커(Linker)
- 패키징(Packaging)
- 테스팅(Testing)
- Operating System
- SDK
CMake 역할
- CMakeLists.txt
- CMake 명령어를 사용하여 프로그램을 어떻게 구성하고 빌드할지 정의
- CMake는 CMakeLists.txt을 읽고 빌드하기 위해 필요한파일들을 생성
- 이 때 바로 생성하는 파일들이 XCode, Visual Studio, Make가 될 수 있음
- 여기서 CMake가 빌드 시스템에 필요한 파일들을 생성해주기 때문에 CMake가 바로 Build System Generator인 것.
- 생성한 이후부터는 CMake가 관여하지 않고 Build System을 사용해서 빌드를 진행
- 따라서 새로운 파일을 생성한다면 CMakeLists.txt에 추가해주어야 함.
빌드 시스템에 넣어주어도 빌드는 되지만 추후 문제가 발생할 수 있음. - 새 파일 추가 시 매번 CMake를 다시 실행해주어야 하는 단점이 있음.
- 그러나 기존의 빌드 시스템의 파일 변경 사항은 사람이 바로 알기 어렵게 구성되어있는데,
CMake는 프로그램 언어와 비슷하기 때문에 변경 사항을 바로 이해할 수 있음.
이로 인해 Version Control System에 매우 친화적
- CMake는 Build System Generator 이기 때문에 Build, Test, Install, Package를 CMake가 직접 하는 것이 아니라
빌드 시스템을 사용하는 것.
즉, CMake는 빌드 시스템을 호출해 주는 정도의 역할
'프로그래밍 > C++' 카테고리의 다른 글
[C++][Summary] Approaching C++ Safety - Bjarne Stroustrup (0) | 2023.08.23 |
---|---|
[C++] struct 와 class 의 차이점 (0) | 2022.09.17 |
[C++] 이중 map - map 안에 map 사용하기 (0) | 2022.09.17 |
[C++] 이미지 파일 ↔ 바이너리 파일 변환하기 (0) | 2022.09.09 |