我正在尝试在发布模式下构建项目。默认情况下,它以调试模式构建。我在CMAKE_BUILD_TYPE
中将变量CMakeLists.txt
设置为“发布”。但它仍然在调试模式下构建项目。
当我在CMake命令中将“Release”作为构建类型传递时,它仍然不起作用。
我使用的CMake命令是:
cmake -G"Visual Studio 10" -DCMAKE_BUILD_TYPE=Release
-H"source_path" -B"Build path"
请提供解决方案。
答案 0 :(得分:104)
要更改构建类型,在Windows上,必须在构建时完成:
cmake --build {DIR} --config Release
默认情况下是Debug。我还在寻找一种改变这种默认方式的方法。 CMAKE_BUILD_TYPE当然不起作用,调整CMAKE_CONFIGURATION_TYPES也不起作用,显然出于同样的原因,它们只适用于Unix makefile,而不适用于Visual项目。
答案 1 :(得分:23)
我使用Visual Studio 2015和cmake 3.3进行了检查。
简短回答
cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}
示例
cmake --build . --target ALL_BUILD --config Release
长答案
cmake -G{GENERATOR_NAME} -B{BUILD_DIR_PATH} -H{SOURCE_DIR_PATH}
cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}
示例
cmake -GVisual Studio 14 -Bbuild/win32/x86 -H.
cmake --build build/win32/x86 --target ALL_BUILD --config Release
其他信息
" -G" - 指定生成器名称
" -B" - 指定构建文件夹的路径
" -H" - 指定源文件夹的路径
答案 2 :(得分:18)
您无法从命令行设置Visual Studio的默认构建类型。
CMake的Visual Studio生成器将生成四个标准配置文件(Debug,RelWithDebInfo,MinSizeRel和Release),您必须从VS中选择要构建的配置文件。这是因为有关活动配置的信息不是CMake生成的项目文件的一部分,而是VS生成的.suo
文件的一部分。
如果您想要自动构建特定配置,请使用MSBuild而不是VS,它允许您在命令行上指定配置。
答案 3 :(得分:1)
尝试了以下对我有用的东西,这些东西使我可以在Windows中以发布/调试模式构建二进制文件。
在根CMakeLists.txt
文件中的项目命令上方添加了以下行:
SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "" FORCE)
使用以下命令设置释放模式配置:
cmake -DCMAKE_BUILD_TYPE=Release ..
使用此命令在发布模式下构建该命令:
cmake --build . --config Release
您也可以在调试模式下重复相同的过程,它可以工作。
答案 4 :(得分:-16)
使用它,但在根cmake文件中添加以下之前 项目关键字
SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "" FORCE)
PROJECT(MY_PROJECT)#It's here just to show where you should add it.