CMake工作流程?

时间:2015-07-03 15:12:27

标签: cmake cmake-gui

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

  • 写一个CMakeLists.txt
  • 从子目录运行cmake以生成构建文件(在我的情况下为Makefile)
  • 运行make

但是,我不明白你应该如何处理不同的目标(Release vs Debug)。通过在两个不同的子目录中运行CMake?

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

2 个答案:

答案 0 :(得分:7)

你得到的非常正确。 write CMakeLists.txt> cmake> make序列是正确的。

关于不同的配置(Debug vs. Release),您必须区分多配置生成器(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和 build

答案 1 :(得分:1)

What @Angew said。另外,这是cmake-gui的图片:

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

来源:Where is the CMake GUI for Linux?

这是我的cmake-gui图片:

enter image description here