CMake 工作流程?

CMake workflow?

我正在学习 CMake,但在理解其多步骤工作流程时遇到问题。到目前为止,我的理解是你:

但是,我不明白您应该如何处理不同的目标(发布与调试)。通过 运行在两个不同的子目录中使用 CMake?

另外,我不明白你为什么要编辑 CMakeCache.txt(也有一个 GUI 工具用于此)。要通过传递不同的选项来模拟您使用 ./configure 完成的工作?

你说得很对。 write CMakeLists.txt > cmake > make 顺序正确。

关于不同的配置(调试与发布),您必须区分多配置生成器(Visual Studio、XCode)和单配置生成器(其他所有)。使用多配置生成器,您可以生成一个包含所有配置的构建系统(例如解决方案文件),并在构建时在它们之间进行选择。

使用单配置生成器,通过生成不同的构建系统来获得不同的配置,即通过 运行 CMake 在不同的目录中多次(并且 CMAKE_BUILD_TYPE CMake 变量的不同值).

所以你会这样做:

> cd my_project/bld/debug
> cmake ../../src -DCMAKE_BUILD_TYPE=Debug
> cd ../release
> cmake ../../src -DCMAKE_BUILD_TYPE=Release

关于编辑缓存(通常通过 CMake GUI 或 ccmake):你又说对了,这主要对应于从 AutoMake 世界向 ./configure 传递选项。这将是新下载项目的典型工作流程(使用 CMake GUI):

  1. 运行 CMake GUI,指向你想要的源目录(输入)和二进制目录(输出)
  2. 配置。 这将使用项目指定的默认值填充缓存。如果 CMake 无法自动找到项目的某些依赖项,则会以错误结束。
  3. 检查缓存,更改您不喜欢的任何值(例如编译选项),填写任何缺失的选项(CMake 找不到的库路径等。 )
  4. 重复第 2 步和第 3 步,直到您对项目的设置感到满意。
  5. 生成 构建系统。
  6. 退出 CMake GUI 并使用适当的构建工具构建

。另外还有一张 cmake-gui:

的图片

另请注意,您使用 sudo apt install cmake-qt-gui 在 Ubuntu 上安装它(CMake GUI),并使用 cmake-gui 运行 安装它。

来源:

这是我的 cmake-gui 图片: