我试图在发布模式下构建一个项目。默认情况下,它是在调试模式下构建的。我在CMakeLists.txt
中将变量CMAKE_BUILD_TYPE
设置为“Release”。但它仍然在调试模式下构建项目。当我在CMake命令中将“Release”作为构建类型传递时,它仍然不工作。
我使用的CMake命令是:
cmake -G"Visual Studio 10" -DCMAKE_BUILD_TYPE=Release
-H"source_path" -B"Build path"
请提供解决方案(如有)。
7条答案
按热度按时间zf9nrax11#
若要在Windows上更改生成类型,必须在生成时完成:
默认情况下它是Debug。我仍然在寻找改变这个默认值的方法。CMAKE_BUILD_TYPE当然不起作用,并且调整CMAKE_CONFIGURATION_TYPES也不起作用,显然出于同样的原因,它们只适用于Unix makefile,不适用于Visual项目。
j2cgzkjk2#
我用Visual Studio 2015和cmake 3.3检查了它。
Link
izj3ouym3#
您无法从命令列设定Visual Studio的预设组建类型。
CMake的Visual Studio Generators将生成四个标准配置文件(Debug、RelWithDebInfo、MinSizeRel和Release),您必须选择要从VS中构建的配置文件。这是因为有关活动配置的信息不是CMake生成的项目文件的一部分,而是VS生成的
.suo
文件的一部分。如果您想要自动建置特定组态,请使用MSBuild,而不要使用VS,因为VS可让您在命令列上指定组态。
gdx19jrr4#
我尝试了下面的方法,在Windows中以发布/调试模式构建二进制文件。
在根
CMakeLists.txt
文件中项目命令的正上方添加了以下行:已使用以下命令设置释放模式配置:
使用此命令在发布模式下构建相同的内容:
您也可以在调试模式下重复相同的过程,它可以正常工作。
uinbv5nw5#
有点晚了,但我发现这个对我很有效,而且很干净:这意味着只需调用
cmake
即可在发布模式下构建,但如果需要调试模式,只需调用cmake -DCMAKE_BUILD_TYPE=Debug
即可p3rjfoxz6#
如果您的生成器是单配置生成器,如“Unix Makefiles”或“Ninja”,则构建类型由the
CMAKE_BUILD_TYPE
variable指定,可以使用-DCMAKE_BUILD_TYPE:STRING=Release
在configure命令中设置。对于多配置生成器(如Visual Studio生成器和“Ninja Multi-Config”),要生成的配置是在生成命令中使用
--config
参数(如--config Release
)指定的。当前可以在配置Ninja Multi-Config生成器时通过设置theCMAKE_DEFAULT_BUILD_TYPE
variable的值来指定默认值。如果没有将--config
参数传递给生成命令,则将使用该参数。目前,无法为Visual Studio生成器设置默认值。llmtgqce7#
按照您的方式使用它,但在根cmake文件中,在 project 关键字**之前添加以下内容