跳转到内容

使用 CMake 构建 C/C++ 项目

CMake 是一个元构建系统:CMakeLists.txt 描述目标与依赖,CMake 会生成本机构建文件(Makefile、Ninja 等)。建议使用源外(out-of-source)构建以保持源码树整洁。

CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(hello C)
add_executable(hello src/main.c)
target_compile_features(hello PRIVATE c_std_11)

构建步骤:

Terminal window
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .
  • CMAKE_BUILD_TYPE=Debug|Release 控制优化与调试信息
  • -DCMAKE_C_FLAGS="-Wall -Wextra" 打开更多警告
  1. 推荐使用 Ninja 作为后端以获得更快的并行构建:cmake -G Ninja ..
  2. 使用 find_package 查找依赖,例如 find_package(PkgConfig REQUIRED) 并用 pkg_check_modules
  3. 将测试放在 tests/ 中,使用 enable_testing()add_test()

这个主题是构建可靠 Linux 开发流程的重要组成部分。对它有清晰的理解,会让后续任务变得更容易,因为你能更快地判断某一步是否缺失或使用不当。

  • 在安全的测试环境中尝试这里展示的命令和配置。
  • 比较这些概念在不同发行版或工具之间的适用差异。
  • 记下一次实践中哪些步骤成功,哪些失败,这样下次遇到问题时更容易定位。
  • 将这篇文章与系列中相关内容结合起来,加深整体理解。
  • 跳过验证步骤,默认系统已经配置正确。
  • 不对命令中的路径、软件包名称或工具版本进行适配,直接复制粘贴执行。
  • 把这个主题当成孤立的技巧,而不是整个开发流程的一部分。