c – 有没有理由不使用链接时优化(LTO)?

GCC,MSVC,LLVM以及可能的其他工具链支持链接时(整个程序)优化,以允许编译单元之间的调用优化.

在编译生产软件时是否有理由不启用此选项?

解决方法:

我假设“生产软件”是指您发送给客户/投入生产的软件. Why not always use compiler optimization?的答案(Mankarse特别指出)主要适用于您要调试代码的情况(因此软件仍处于开发阶段 – 而非生产阶段).

我能想到的唯一好的,有效的原因是链接时间优化可能会引入微妙的错误,请参阅Link-time optimization for the kernel.假设您有适当的测试来检查您即将发布的软件的正确性,我认为没有理由不这样做默认情况下使用LTO. (随着时间的推移,LTO越来越成熟,所以我们希望这些微妙的错误会越来越少.)

上一篇:如何使用__pycache__文件夹运行Python项目?


下一篇:c – 使用CMake编译静态可执行文件