7

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

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

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

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

4

2 回答 2

8

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

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

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

所以你会做这样的事情:

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

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

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

@Angew 说了什么。另外,这是一张图片cmake-gui

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

资料来源:Linux 的 CMake GUI 在哪里?

这是我的cmake-gui图像:

在此处输入图像描述

于 2018-11-25T06:17:02.913 回答