我正在学习 CMake,但在理解其多步骤工作流程时遇到了问题。到目前为止,我的理解是你:
- 写一个
CMakeLists.txt
- 从子目录运行
cmake
以生成构建文件(在我的情况下为 Makefile) - 跑
make
但是,我不明白您应该如何处理不同的目标(发布与调试)。通过在两个不同的子目录中运行 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
):你又是对的,这在很大程度上对应于./configure
从 AutoMake 世界传递选项。这将是新下载项目的典型工作流程(使用 CMake GUI):
@Angew 说了什么。另外,这是一张图片cmake-gui
:
另请注意,您使用 Ubuntu 在 Ubuntu 上安装它(CMake GUI)sudo apt install cmake-qt-gui
,并使用cmake-gui
.
这是我的cmake-gui
图像: