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 –