CMake 工作流程?
CMake workflow?
我正在学习 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
):你又说对了,这主要对应于从 AutoMake 世界向 ./configure
传递选项。这将是新下载项目的典型工作流程(使用 CMake GUI):
- 运行 CMake GUI,指向你想要的源目录(输入)和二进制目录(输出)
- 配置。 这将使用项目指定的默认值填充缓存。如果 CMake 无法自动找到项目的某些依赖项,则会以错误结束。
- 检查缓存,更改您不喜欢的任何值(例如编译选项),填写任何缺失的选项(CMake 找不到的库路径等。 )
- 重复第 2 步和第 3 步,直到您对项目的设置感到满意。
- 生成 构建系统。
- 退出 CMake GUI 并使用适当的构建工具构建。
。另外还有一张 cmake-gui
:
的图片
另请注意,您使用 sudo apt install cmake-qt-gui
在 Ubuntu 上安装它(CMake GUI),并使用 cmake-gui
运行 安装它。
来源:
这是我的 cmake-gui
图片:
我正在学习 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
):你又说对了,这主要对应于从 AutoMake 世界向 ./configure
传递选项。这将是新下载项目的典型工作流程(使用 CMake GUI):
- 运行 CMake GUI,指向你想要的源目录(输入)和二进制目录(输出)
- 配置。 这将使用项目指定的默认值填充缓存。如果 CMake 无法自动找到项目的某些依赖项,则会以错误结束。
- 检查缓存,更改您不喜欢的任何值(例如编译选项),填写任何缺失的选项(CMake 找不到的库路径等。 )
- 重复第 2 步和第 3 步,直到您对项目的设置感到满意。
- 生成 构建系统。
- 退出 CMake GUI 并使用适当的构建工具构建。
cmake-gui
:
另请注意,您使用 sudo apt install cmake-qt-gui
在 Ubuntu 上安装它(CMake GUI),并使用 cmake-gui
运行 安装它。
来源:
这是我的 cmake-gui
图片: