可以使用哪些技术来加快c++编译时间?
这个问题出现在一些关于Stack Overflow问题c++编程风格的评论中,我很有兴趣听听有什么想法。
我看到过一个相关的问题,为什么c++编译要花这么长时间?,但这并没有提供很多解决方案。
可以使用哪些技术来加快c++编译时间?
这个问题出现在一些关于Stack Overflow问题c++编程风格的评论中,我很有兴趣听听有什么想法。
我看到过一个相关的问题,为什么c++编译要花这么长时间?,但这并没有提供很多解决方案。
当前回答
使用动态链接而不是静态链接会让你的编译器更快。
如果你使用t Cmake,激活属性:
set(BUILD_SHARED_LIBS ON)
Build Release,使用静态链接可以得到更多的优化。
其他回答
我有个关于使用内存驱动器的主意。事实证明,对于我的项目来说,这并没有太大的区别。但它们仍然很小。试一试!我很想知道这有多大帮助。
虽然不是一个“技术”,我不知道Win32项目与许多源文件编译速度比我的“Hello World”空项目。因此,我希望这能帮助到像我这样的人。
在Visual Studio中,增加编译时间的一个选项是增量链接(/ Incremental)。它与链接时代码生成(/LTCG)不兼容,因此在进行版本构建时请记住禁用增量链接。
只是为了完整性:构建可能很慢,因为构建系统很愚蠢,也因为编译器花了很长时间来完成它的工作。
关于Unix环境中这个主题的讨论,请阅读递归使其被认为是有害的(PDF)。
我推荐《Games from Within, Indie Game Design And Programming》中的以下文章:
物理结构和c++ -第1部分:概览 物理结构和c++ -第2部分:构建时间 甚至更多的包含实验 《超人总动员》有多不可思议? 预编译头文件的处理和提供 追求完美的建造系统 追求完美的构建系统(下)
当然,它们已经很旧了——你必须用最新的版本(或你可用的版本)重新测试所有的东西,才能得到真实的结果。无论如何,这都是一个很好的创意来源。
在Linux(也许还有其他一些* nix)上,您可以通过不盯着输出并更改到另一个TTY来加速编译。
下面是实验:printf使我的程序变慢