我正在学习CMake,我在理解其多步骤工作流程时遇到了问题。到目前为止,我的理解是你:
CMakeLists.txt
cmake
以生成构建文件(在我的情况下为Makefile)make
但是,我不明白你应该如何处理不同的目标(Release vs Debug)。通过在两个不同的子目录中运行CMake?
另外,我不明白为什么要编辑CMakeCache.txt
(还有一个GUI工具)。通过传递不同的选项来模拟使用./configure
完成的任务?
答案 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 :(得分: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
图片: