在CMake中将编译器选项设置为默认值
如何在CMake文件中将“基本运行时检查”设置为“默认” 使用CMake中的以下行,我可以在发布模式中将其设置为RTCs,但我真正需要的是将其设置为默认值在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
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()
。感谢您的建议