我有最新的cmake,并尝试了所有构建配置(调试、MinSizeRel、RelWithDebugInfo、Release、General) --在生成的makefile字符串-lto
中没有看到(文本搜索),所以或者该功能仍然不存在,或者它需要手动交互(在这种情况下,文档中对LTO或链接时间优化的文本搜索)没有结果,所以我在正式文档中看不到启用LTO的方法。
有没有任何方法可以使LTO“全局”(对于所有编译器),而不指定可能在最坏的情况下只有GCC支持的手动标志?
发布于 2020-02-27 12:56:07
目前gcc和clang都支持lto。(参见:https://clang.llvm.org/docs/CommandGuide/clang.html https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html )您可以在via cmake: set (CMAKE_INTERPROCEDURAL_OPTIMIZATION True)中启用它,但是您需要拥有版本cmake >= 3.9,我认为可以设置一些策略并检查编译器/工具链是否支持LTO (检查CMAKE_IPO_AVAILABLE,否则抛出错误)。
并为gcc/clang设置标志( fcc >4.7的-flto和-ffat-lto-文件或clang的-flto=full/thin )
https://stackoverflow.com/questions/31355692
复制相似问题