[CMake 설치]
sudo apt install cmake
[CMake 주요 문법]
- 변수
set(변수명 값)
set(변수명 "값1 값2") => 공백있는경우 쿼터사용
set(변수명 값1 값2) => 직렬화
- 출력
message(${변수명})
message(문자열)
message(타입 문자열)
* 출력타입
STATUS : 상태 메시지 WARNING : 경고 메시지 SEND_ERROR : 에러 메시지를 출력(Makefile생성X) FATAL_ERROR : 에러 메시지 출력 후 작업 중단 AUTHOR_WARNING : 디버깅 메시지 |
- 프로젝트명
project(sampleProject) => 프로젝트명 설정을 설정하면 CMAKE_PROJECT_NAME이라는 변수에 저장된다.
- CMake 버전관리
CMAKE_MINIMUM_REQUIRED(VERSION x.xx)
=> 최소 cmake 버전을 명시한다.
=> 최소 버전보다 낮은 cmake를 사용한다면 에러를 출력한다.
- 최종빌드 바이너리
ADD_EXECUTABLE(바이너리명 소스코드명 소스코드명)
- 최종빌드 라이브러리
ADD_LIBRARY(라이브러리명 소스코드명)
SHARED(동적 라이브러리) : DLL(Windows), SO(Linux)
STATIC(정적 라이브러리) : LIB(Windows), A(Linux) => 디폴트
- 컴파일러 설정
SET (CMAKE_C_COMPILER "gcc" )
=> 환경변수 설정이 되어있지않다면 절대경로로 지정해준다.
- 컴파일 옵션
ADD_COMPILE_OPTIONS(-g -W)
- 전처리기 매크로
ADD_DEFINITIONS(-DDEBUG=1)
=> 해당 구문은 cmake파일 어디에 두어도 정상 동작한다.
=> gcc에서 -D 옵션
- 헤더파일 디렉토리 추가
INCLUDE_DIRECTORIES(/${PATH}/include)
=> 해당 구문은 cmake파일 어디에 두어도 정상 동작한다.
=> gcc에서 -I 옵션
- 라이브러리 디렉토리 지정
LINK_DIRECTORIES(/lib /usr/lib)
=> /lib과 /usr/lib를 링크 시 필요한 라이브러리를 참조하도록
=> gcc에서 -L 옵션
- 링크옵션 추가
LINK_LIBRARIES(WS2_32)
=> gcc에서 -l 옵션
- 출력디렉토리 지정
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../) => 바이너리
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../) => 동적 라이브러리
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ../) => 정적 라이브러리
[CMake 샘플 코드]
[CMake를 이용해 프로젝트 빌드]
* https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/Useful-Variables
'C&C++' 카테고리의 다른 글
How to use constructor and destructor in C language (0) | 2024.04.24 |
---|---|
Errno Setting Function List (0) | 2024.01.17 |
How To Use Unit Test In C++ (0) | 2020.01.13 |
WINAPI How To Hook ConnectEx (0) | 2019.11.06 |
WINAPI DLL_PROCESS_DETACH (1) | 2019.08.08 |