使用 CMake 自动管理 C/C++ 项目

使用 CMake 自动管理 C/C++ 项目

1. 介绍

CMake 是一个强大的构建系统,可用于跨平台管理 C/C++ 项目的编译过程。本 CMakeLists.txt 文件提供了一种自动化的方式来管理 C/C++ 项目,包括创建代码目录、自动编译所有源文件、管理输出文件等。

2. CMake 最低版本要求 & 项目信息

cmake_minimum_required(VERSION 3.14)
project(TestDemo C CXX)

这段代码确保 CMake 版本不低于 3.14,并定义项目名称 TestDemo,支持 C 和 C++ 语言。

3. 主要功能

CMakeLists.txt 具备以下功能:

  • 自动创建 src 目录,存放源代码文件;
  • 自动遍历 src 目录,编译其中的所有 .c.cpp 文件;
  • 设定编译输出路径,避免污染项目根目录:
    • .runtime/ 目录存放可执行文件;
    • .library/ 目录存放静态/动态库;
    • .archive/ 目录存放编译中间文件;
  • 支持多个 main() 函数,可以直接运行单个源文件。

4. C/C++ 语言标准设定

set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 17)

此处指定 C 语言标准为 C99,C++ 语言标准为 C++17。

5. 编译输出目录设定

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/.archive)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/.library)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/.runtime)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/.runtime)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/.library)

这些配置确保编译后的文件不会污染项目根目录。

6. 自动创建 src 目录

set(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
if (NOT EXISTS ${SRC_DIR})
    file(MAKE_DIRECTORY ${SRC_DIR})
endif ()
message(STATUS "src目录: ${SRC_DIR}")

src 目录不存在,则自动创建,并在 CMake 输出日志中打印 src 目录路径。

7. 头文件搜索路径

include_directories(${SR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值