在 CMake 中将编译器选项设置为默认值
Set compiler option to default In CMake
如何在我的 CMake 文件中将 "Basic Runtime Checks" 设置为 "Default"?
在 CMake 中使用以下行,我可以在发布模式下将其设置为 RTC,但我真正需要的是将其设置为默认值。
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
此致
如何在我的 CMake 文件中将 "Basic Runtime Checks" 设置为 "Default"?
在 CMake 中使用以下行,我可以在发布模式下将其设置为 RTC,但我真正需要的是将其设置为默认值。
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
此致