gcc或clang的哪些标志会改善编译时间?我需要启用调试,但是如果它们将导致更快的编译,则可以自由禁用任何其他功能。
我知道还有很多其他方法可以改善编译时间,但我对此领域感兴趣。
答案 0 :(得分:6)
通过消除编译器完成的大部分工作(通常是优化),可以找到编译时最大的收益。因此,请勿启用优化(-O
)标记。
答案 1 :(得分:3)
对于GCC,您可以尝试多线程编译(-jX标志,其中X是您拥有+1的核心数,根据Qt中心的Reducing compile times文章。)
更新:似乎我犯了一个错误:-jX是'make'标志,而不是GCC。因此,如果您使用基于make的构建系统,它将改善链接时间。
答案 2 :(得分:3)
您也可以尝试使用预编译的标头。
答案 3 :(得分:1)
尝试-O1,尽管它与反对直观相反,可以加速编译,与-O0相比。另请查看ccache
答案 4 :(得分:0)
如果您可以访问网络上的更多CPU,则可以使用distcc
答案 5 :(得分:-1)
如果我们从基线开始为“没有标记编译”,那么就没有可以设置的标志会增加编译时间。