0
如何在我的CMake文件中将“基本运行时检查”设置为“默认”?将编译器选项设置为默认值在CMake中
在CMake中有以下行,我可以将它设置为Release模式下的RTC,但我真正需要的是将其设置为Default。
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /RTCs")
如何在我的CMake文件中将“基本运行时检查”设置为“默认”?将编译器选项设置为默认值在CMake中
在CMake中有以下行,我可以将它设置为Release模式下的RTC,但我真正需要的是将其设置为Default。
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(配置$ {} CMAKE_CONFIGURATION_TYPES)'| '字符串(TOUPPER“$ {config}”CONFIG)'| 'string(REGEX REPLACE)/ RTC [A-Za-z0-9] *“”“CMAKE_CXX_FLAGS _ $ {CONFIG}”$ {CMAKE_CXX_FLAGS _ $ {CONFIG}}“)'| 'message(“$ {CMAKE_CXX_FLAGS _ $ {CONFIG}}”)'| 'endforeach()'。 – Florian
感谢您的建议Florian –