Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CMake中将编译器选项设置为默认值_Cmake_Visual C++ 2008 - Fatal编程技术网

在CMake中将编译器选项设置为默认值

在CMake中将编译器选项设置为默认值,cmake,visual-c++-2008,Cmake,Visual C++ 2008,如何在CMake文件中将“基本运行时检查”设置为“默认” 使用CMake中的以下行,我可以在发布模式中将其设置为RTCs,但我真正需要的是将其设置为默认值 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /RTCs") 我找到了解决办法 使用宏删除当前编译器选项 macro(RemoveDebugCXXFlag flag) string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS_DEBUG

如何在CMake文件中将“基本运行时检查”设置为“默认”

使用CMake中的以下行,我可以在发布模式中将其设置为RTCs,但我真正需要的是将其设置为默认值

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /RTCs")
我找到了解决办法

使用宏删除当前编译器选项

macro(RemoveDebugCXXFlag flag)
    string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
endmacro()

macro(RemoveReleaseCXXFlag flag)
    string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
endmacro()

message(${CMAKE_CXX_FLAGS_DEBUG}) # Print Debug Flags Before Change
RemoveDebugCXXFlag("/RTC1")

message(${CMAKE_CXX_FLAGS_DEBUG}) # Print Debug Flags After Change

message(${CMAKE_CXX_FLAGS_RELEASE}) # Print Release Flags Before Change
RemoveReleaseCXXFlag("/RTC1")
message(${CMAKE_CXX_FLAGS_RELEASE}) # Print Release Flags After Change

致以最诚挚的问候

只是想通过使部分变量名也变为变量来建议一个更通用的版本:
foreach(config${CMAKE\u CONFIGURATION\u TYPES})
string(REGEX-REPLACE)/RTC[a-Za-z0-9]*“CMAKE\u-CXX\u-FLAGS${config}”${CMAKE\u-CXX\u-CXX\u-FLAGS{config}
消息(${CMAKE\u CXX\u FLAGS\u${CONFIG}”)
endforeach()
。感谢您的建议