CMakeLists.txt 基本结构
CMakeLists.txt 是 CMake 构建系统的核心配置文件,用于定义项目结构、编译选项和依赖关系。一个基础模板如下:
cmake_minimum_required(VERSION 3.10) # 指定最低 CMake 版本
project(MyProject) # 定义项目名称
set(CMAKE_CXX_STANDARD 17) # 设置 C++ 标准
add_executable(${PROJECT_NAME} main.cpp) # 添加可执行文件
添加源文件与头文件
对于多文件项目,需显式列出源文件或通过通配符自动匹配:
# 手动指定文件
add_executable(MyApp src/main.cpp src/foo.cpp include/foo.h)
# 使用通配符(需谨慎,可能导致未预期的文件被包含)
file(GLOB SOURCES "src/*.cpp")
add_executable(MyApp ${SOURCES})
包含目录和链接库
通过 target_include_directories 和 target_link_libraries 添加头文件路径和依赖库:
# 添加头文件搜索路径
target_include_directories(MyApp PUBLIC include)
# 链接系统库(如 pthread)
find_package(Threads REQUIRED)
target_link_libraries(MyApp PRIVATE Threads::Threads)
# 链接第三方库(如 OpenCV)
find_package(OpenCV REQUIRED)
target_link_libraries(MyApp PRIVATE ${OpenCV_LIBS})
条件编译与变量控制
CMake 支持条件分支和自定义变量,适合跨平台配置:
option(ENABLE_DEBUG "Enable debug mode" ON) # 定义选项
if(ENABLE_DEBUG)
add_definitions(-DDEBUG_MODE) # 添加宏定义
endif()
# 根据平台设置不同编译选项
if(WIN32)
target_
1274

被折叠的 条评论
为什么被折叠?



