-
Basic_CMakeTools/CMake 2023. 12. 31. 18:23
이번에는 간단한 예제를 가지고 CMake를 구성하여 C++ 빌드를 해보려고한다.
만약 이 페이지를 처음 본다면, 아래의 기본적인 Compiler 설치와 Extentions중 Clangd를 적용하고 오는 것을 추천한다.
Compiler:
https://mokchanic.tistory.com/61
GCC_Clang Compiler installation (Ubuntu & Windows)
Compiler installation on Ubuntu - GCC 터미널을 열어서 다음의 커맨드를 실행한다. $ sudo apt update && sudo apt upgrade -y $ sudo apt install -y build-essential # 필요한 종속성 설치 $ sudo apt install -y gcc 다음 명령어로 gcc
mokchanic.tistory.com
Extemtopms:
https://mokchanic.tistory.com/63
vscode 설치 & C++ extentions
IDE(Integrated Development Environment)는 통합 개발 환경으로 코드 작성, 디버깅, 테스팅 및 프로젝트 관리 기능을 통합하는 종합적인 환경을 제공한다. 이번에는 vscode를 설치하고 편리한 extention이 어떤
mokchanic.tistory.com
CMake
Extentions로 CMake Tools를 추가했으면, 다음과 같은 화면을 볼 수 있다.
CMake Tools 여기서 Compiler와 Build type을 지정할 수 있다.
Build type은 다음과 같이 있다.
- Debug: 최적화를 사용하지 않고 디버그 정보 포함.
- Release: 속도 최적화를 사용. 디버그 정보 제외.
- MinSizeRel(Min Size Release): 속도 최적화를 하지만, Excutable의 크기를 작게 뽑아냄. 임베디드와 같은 제한된 리소스 환경에서 사용. 디버그 정보 제외.
- RelWithDebinfo(Release With Debug Info): 속도 최적화를 하면서 디버깅을 할 수 있음.(회사에서는 이걸 사용할 때가 많음.)
Build에서는 Build Target을 정해줄 수 있다.
이는 User Setting의 CMake option에서 하단바에 Visibility를 지정할 수 있다.
hidden에서 visible로 바꿔주면 하단에 설정창이 적용된다.
이제 CMake파일을 작성해보자.
- CMakeLists.txt
cmake_minimum_required(VERSION 3.22) set(PACKAGE_NAME EXAMPLE_CMAKE_PROJECT) set(PACKAGE_VERSION 1.1.0) project(${PACKAGE_NAME} VERSION ${PACKAGE_VERSION} LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) message(STATUS "PACKAGE_NAME: ${PACKAGE_NAME}") message(STATUS "PACKAGE_VERSION: ${PACKAGE_VERSION}") add_executable(${PACKAGE_NAME}_MAIN main.cpp) target_compile_options(${PACKAGE_NAME}_MAIN PRIVATE -Wall -Wextra -Wpedantic -Werror )
아래의 add_executable과 target_compile_options로 빌드와 실행 타겟 지정이 가능하다.
즉, main.cpp의 빌드 및 실행 타겟을 여러개 만들 수 있다.
빌드후 실행을 해보면 다음의 결과를 볼 수 있다.
결과
예제코드
https://github.com/Mokchanic/Example_CMake_Project.git
GitHub - Mokchanic/Example_CMake_Project
Contribute to Mokchanic/Example_CMake_Project development by creating an account on GitHub.
github.com
'Tools > CMake' 카테고리의 다른 글
Build_System_CMake1 (1) 2024.01.09 CMake Build System (0) 2023.10.09