cmake项目基本demo

发布于:2025-07-31 ⋅ 阅读:(15) ⋅ 点赞:(0)
# 设置最低CMake版本要求
cmake_minimum_required(VERSION 3.10)

# 项目名称和版本
project(MyProject VERSION 1.0.0)

# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 设置编译器选项
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O2")
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /O2")
endif()

# 设置输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

# 包含头文件目录
include_directories(${CMAKE_SOURCE_DIR}/include)

# 收集源文件
file(GLOB_RECURSE SOURCES 
    "${CMAKE_SOURCE_DIR}/src/*.cpp"
    "${CMAKE_SOURCE_DIR}/src/*.c"
)

file(GLOB_RECURSE HEADERS 
    "${CMAKE_SOURCE_DIR}/include/*.h"
    "${CMAKE_SOURCE_DIR}/include/*.hpp"
)

# 创建可执行文件
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})

# 链接目录(如果有外部库)
# link_directories(/usr/local/lib)

# 链接库(如果需要)
# target_link_libraries(${PROJECT_NAME} 
#     pthread
#     m
# )

# 如果要创建静态库而不是可执行文件,使用以下命令替代add_executable
# add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})

# 如果要创建动态库
# add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS})

# 安装配置
install(TARGETS ${PROJECT_NAME}
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib
)

# 安装头文件
install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/
    DESTINATION include
    FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
)

# 可选:启用测试
# enable_testing()
# add_subdirectory(tests)

# 可选:添加子目录
# add_subdirectory(external)
# add_subdirectory(docs)

创建一个基础的CMakeLists.txt模板,适用于大部分C++项目:这个模板包含了C++项目的基本配置,主要功能:

核心配置:

  • 设置CMake最低版本要求(3.10)
  • 定义项目名称和版本
  • 设置C++标准(C++17)
  • 配置编译器选项和优化级别

推荐的项目目录结构:

MyProject/
├── CMakeLists.txt
├── include/           # 头文件
│   └── *.h, *.hpp
├── src/              # 源文件
│   └── *.cpp, *.c
├── build/            # 构建目录(手动创建)
├── tests/            # 测试文件(可选)
└── external/         # 第三方库(可选)

使用方法:

# 创建构建目录
mkdir build && cd build

# 生成构建文件
cmake ..

# 编译项目
make          # Linux/Mac
# 或
cmake --build .  # 跨平台

# 运行程序
./bin/MyProject

常用修改:

  1. 修改MyProject为你的项目名
  2. 调整C++标准版本(11/14/17/20)
  3. 取消注释库链接部分添加依赖
  4. 根据需要选择生成可执行文件、静态库或动态库

网站公告

今日签到

点亮在社区的每一天
去签到