gcc 或 clang 的哪些标志可以缩短编译时间?我需要启用调试,但任何其他功能都可以自由禁用,如果它们会导致更快的编译。
我知道还有很多其他方法可以提高编译时间,但我只对这个领域感兴趣。
编译时间的最大增益是通过消除编译器所做的大部分工作(通常是优化)来实现。因此,不要启用优化 (
-O
) 标志。
尝试 -O1,尽管它与 -O0 相比违反直觉,但它可以加快编译速度。另请查看ccache
您还可以尝试使用预编译头。
对于 GCC,您可以尝试多线程编译(-jX 标志,其中 X 是您拥有的核心数+1,根据 Qt 中心的减少编译时间文章)。
更新:看来我犯了一个错误:-jX 是一个“make”标志,而不是 GCC。因此,如果您使用基于 make 的构建系统,它将缩短链接时间。
如果我们从“不使用标志进行编译”的基线开始,则没有可以设置的标志来增加编译时间。