我希望在任何平台上通过命令行设置 CMake 的 Release模式。我发现例如here 表示不同平台上的细节略有不同。但为了简化 CI 设置,我希望在 Unix 和 Windows 上执行相同的命令。我尝试过:
cmake . -DCMAKE_BUILD_TYPE=RELEASE
cmake --build .
但后来我进入了 Windows:
Manually-specified variables were not used by the project:
CMAKE_BUILD_TYPE
这可能吗?如果是这样,我应该使用什么?
最佳答案
这不是 Linux 和 Windows 之间的区别。这是单配置和多配置之间的区别generators .
CMake 在为不同类型的生成器配置和构建项目时使用不同的“构建类型”规范:
使用单配置生成器(例如“Unix Makefiles”),构建类型在配置阶段使用
CMAKE_BUILD_TYPE
变量指定:cmake -DCMAKE_BUILD_TYPE=Release <source-dir> cmake --build .
使用多配置生成器(例如 Visual Studio),配置阶段的构建类型是未知的:此阶段同时针对多种构建类型执行。当构建项目时,需要选择适当的构建类型,例如使用
--config
选项:cmake <source-dir> cmake --build . --config Release
由于构建类型是在不同阶段指定的,因此两种生成器类型很少存在单一命令集。
但是,如果在 Linux 上选择生成器“Unix Makefiles”并在 Windows 上选择生成器“NMake Makefiles”,则完全可以使用一组命令:这两个生成器都是单配置。
关于cmake - 在任何平台上从命令行选择CMake的 Release模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64927326/