# 最低CMake版本要求
cmake_minimum_required(VERSION 3.10)
# 项目名称
project(test_demo)
# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 自动收集源文件 (如果不想手动列出每个文件)
file(GLOB_RECURSE CURRENT_SOURCES "src/*.cpp")
file(GLOB_RECURSE CURRENT_INCLUDE "include/*")
# 添加可执行文件(根据你的项目结构调整源文件列表)
add_executable(${PROJECT_NAME} # 可执行文件名称(这里使用项目名称作为可执行文件名称)
${CURRENT_SOURCES} # 源文件列表
${CURRENT_INCLUDE} # 头文件列表
)
# 添加头文件搜索路径
target_include_directories(${PROJECT_NAME} # 目标名称(如可执行文件或库)
PUBLIC # 可见性(PUBLIC/PRIVATE/INTERFACE)
${CMAKE_CURRENT_SOURCE_DIR}/include # 头文件目录路径
)
# 如果需要链接外部库,可以在这里添加
find_library(CURL REQUIRED)
target_link_libraries(${PROJECT_NAME} # 目标名称
PRIVATE
curl
)
其中有解引用$符号的变量说明:
${PROJECT_NAME} | #项目名称,即project(test_demo)括号中内容 |
${CURRENT_SOURCES} | #自定义变量,file(GLOB_RECURSECURRENT_SOURCES "src/*.cpp"):遍历所以子目录找到 "src/*.cpp",存入CURRENT_SOURCES |
${CMAKE_CURRENT_SOURCE_DIR} | #表示当前正在处理的 CMakeLists.txt 文件所在的源目录路径 |