如何加快c ++链接时间

Lud*_*cka 16 c++ linker visual-c++

有没有办法,在MS Visual Studio C++(2005)中优化链接时间?我们正在使用Xoreax Incredibuild进行编译加速,但没有任何链接.

目前,每个链接大约需要30秒.当我打开增量链接时,需要35-40秒.(无论我是否使用incredibuild编译项目)

有什么办法,如何配置链接器并观察需要多长时间?或者任何用于paralel链接的工具?或任何代码优化的提示,以加快链接器?

感谢Ludek Vodicka的回复


编辑:

感谢您的第一次回复和其他信息:

  • 整个程序优化和链接时代码生成已经关闭.
  • 已尽可能使用PIMPL习语
  • 其他静态库已经通过#pragma comment(lib,"pathToLib")包含在内.(也因为更容易维护]
  • 硬件:四核q6600,8GB内存,3x WD猛禽raid 0. Windows Vista 64bit

小智 10

我不知道任何并行链接工具; 我知道Incredibuild不允许这样做.

工具箱中用于避免链接时间的最大工具是适当的抽象级别.如果链接时间很长,可能是因为对象对其他对象了解太多.然后解耦它们是关键 - 通过抽象接口(可能使用PIMPL范例),或者通过事件传递等其他方法.

通过Project Dependencies链接项目的开销也很高.如果您的目标平台仅是Win32,或者主要是,您可以考虑使用标头通过#pragma comment(lib,"pathToLib")链接您的依赖库.


Ben*_*ehn 8

如果您可以在没有优化的情况下生存,请关闭链接时代码生成(删除/ GL开关或在属性c/c ++ - >优化 - >整个程序优化.对于链接器删除/ ltcg或使用链接时间代码生成设置).这会使编译器变慢,因为代码生成现在在编译期间发生.

我已经看到用/ GL +/LTCG构建需要几个小时的项目,仅仅几秒钟(例如:http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/750ed2b0-0d51 -48a3-bd9a-e8f4b544ded8)