0Pricing
C++ Academy · 강의

CMake 프로젝트 구성과 CMakeLists.txt

소스 트리를 구성하고 기본적인 CMakeLists 파일을 작성합니다.

CMake 프로젝트 구성과 CMakeLists.txt은(는) CoddyKit의 무료 C++ Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C++ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

CMake를 사용하는 이유

CMake는 C++의 사실상 표준 빌드 시스템 생성기입니다. 하나의 설명으로부터 Make, Ninja, Visual Studio, Xcode용 프로젝트 파일을 생성합니다.

최소 CMakeLists.txt

단일 실행 파일에 사용할 수 있는 가장 작은 CMakeLists.txt입니다.

cmake_minimum_required(VERSION 3.20)
project(MyApp LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(myapp main.cpp)

소스 외부 빌드

항상 별도의 디렉터리에서 빌드하십시오. 그러면 소스 트리를 깔끔하게 유지할 수 있습니다.

# from project root
cmake -B build
cmake --build build

표준 프로젝트 구조

깔끔한 구조는 다음과 같습니다:

  • CMakeLists.txt
  • src/ — 소스 파일
  • include/ — 공개 헤더
  • tests/ — 테스트
  • third_party/ — 포함된 종속성

하위 디렉터리 추가

각자의 CMakeLists.txt를 가진 하위 디렉터리로 재귀적으로 들어갑니다.

# top-level
add_subdirectory(src)
add_subdirectory(tests)

변수와 속성

set으로 변수를 설정하고 ${var}로 읽습니다. 일반적인 변수로는 CMAKE_BUILD_TYPE과 CMAKE_CXX_FLAGS가 있습니다.

set(CMAKE_BUILD_TYPE Release)
set(SOURCES src/a.cpp src/b.cpp)

파일 동적으로 찾기

빠른 프로토타입에는 file(GLOB ...)를 사용하십시오. 실제 배포용 프로젝트에서는 소스 파일을 명시적으로 나열하여 파일이 추가될 때 CMake가 다시 실행되도록 하십시오.

# Discouraged for production
file(GLOB SOURCES "src/*.cpp")

# Preferred
add_executable(myapp src/main.cpp src/util.cpp)

빌드 구성

일반적인 구성으로는 Debug, Release, RelWithDebInfo, MinSizeRel이 있습니다. -DCMAKE_BUILD_TYPE=Release로 설정합니다.

cmake -B build -DCMAKE_BUILD_TYPE=Release

컴파일러 경고

경고를 대상 속성으로 활성화하십시오. 그러면 컴파일러가 달라도 이식성을 유지할 수 있습니다.

target_compile_options(myapp PRIVATE
    $<$<CXX_COMPILER_ID:GNU,Clang>:-Wall -Wextra>
    $<$<CXX_COMPILER_ID:MSVC>:/W4>
)

현대적인 CMake 방식

전역 명령보다 대상 기반 명령(target_*)을 우선하십시오. 대상별로 속성의 범위를 깔끔하게 지정할 수 있습니다.

CMakePresets.json (CMake 3.19+)

재사용 가능한 구성을 CMakePresets.json에 정의하여 팀 구성원 모두가 공유하십시오.

프로젝트 설치

install 명령을 사용하여 바이너리, 라이브러리 및 헤더를 설치 경로에 복사하십시오.

install(TARGETS myapp DESTINATION bin)
install(DIRECTORY include/ DESTINATION include)

빠른 확인

CMake를 실행할 때 권장되는 디렉터리 구성은 무엇입니까?

복습

CMake는 표준 C++ 빌드 시스템 생성기입니다. CMakeLists.txt를 작성하고 소스 외부에서 빌드하며 대상 기반 명령을 사용하십시오. 공유 구성에는 프리셋을 사용하고 컴파일러 플래그에는 속성을 사용하십시오.

자주 묻는 질문

“CMake 프로젝트 구성과 CMakeLists.txt” 강의는 무료인가요?

네 — “CMake 프로젝트 구성과 CMakeLists.txt” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C++ Academy 강의 전체를 잠금 해제할 수 있습니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“CMake 프로젝트 구성과 CMakeLists.txt”에서 뭘 배우나요?

소스 트리를 구성하고 기본적인 CMakeLists 파일을 작성합니다. 브라우저에서 직접 실행하는 실습 코드로 C++ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C++ Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C++ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“CMake 프로젝트 구성과 CMakeLists.txt” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C++ Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C++ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CMake 프로젝트 구성과 CMakeLists.txt
  2. 대상, 연결 및 가시성: PUBLIC, PRIVATE
  3. vcpkg와 Conan으로 의존성 관리하기
  4. IDE 파일 생성과 크로스 플랫폼 빌드
← C++ Academy(으)로 돌아가기