我正在尝试使用 CMake 3.10 构建一个带有 IPO 的 C++ 应用程序,我的内容如下CMakeLists.txt
:
include(CheckIPOSupported)
check_ipo_supported(RESULT ipo_supported)
if(ipo_supported)
message("-- IPO is supported!")
set_property(TARGET target PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
else()
message(WARNING "IPO is not supported!")
endif()
我在 CentOS 4 机器上使用配置为启用 IPO(默认)的 GCC 7.2,并且我能够使用该-flto
标志编译一个简单的测试程序。然而 CMake 报告不支持 IPO。在多台其他机器上,支持相同的 CMake 脚本报告 IPO。
如果我知道 CMake 如何检查 IPO 支持,这将有助于我理解问题所在。CMake 的模块是如何CheckIPOSupported
工作的?