如何在cmake中将构建类型更改为Release模式?

时间:2013-09-26 09:24:01

标签: windows visual-studio-2010 cmake

我正在尝试在发布模式下构建项目。默认情况下,它以调试模式构建。我在CMAKE_BUILD_TYPE中将变量CMakeLists.txt设置为“发布”。但它仍然在调试模式下构建项目。 当我在CMake命令中将“Release”作为构建类型传递时,它仍然不起作用。

我使用的CMake命令是:

cmake -G"Visual Studio 10" -DCMAKE_BUILD_TYPE=Release
  -H"source_path" -B"Build path"

请提供解决方案。

5 个答案:

答案 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进行了检查。

简短回答

Link

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.