什么标志会改善gcc / clang编译时间?

时间:2012-01-05 21:49:24

标签: c++ compiler-construction

gcc或clang的哪些标志会改善编译时间?我需要启用调试,但是如果它们将导致更快的编译,则可以自由禁用任何其他功能。

我知道还有很多其他方法可以改善编译时间,但我对此领域感兴趣。

6 个答案:

答案 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)

如果我们从基线开始为“没有标记编译”,那么就没有可以设置的标志会增加编译时间。