2016-03-15 67 views
0

我有一个项目(64位),这是花了很长时间来链接。诊断慢速链接

我设置链接为详细然后观看了各类文字闪烁,然后它说...

1> Finished searching libraries 
1> 
1> Finished pass 1 
1> 
1> Generating code 

这是它仍然是一个一分钟。我想知道,是否可能会花时间,因为它尝试了一些奇特的优化......或者可能是因为我有大量的静态数据?有没有可能有助于加快速度的链接器设置?

顺便说一句,我有16GB的RAM和和编译器和项目i7的PC都存储在一个固态驱动器。

编辑:它与调试版本链接速度提高10倍,但我需要使用发行版本,否则程序运行速度太慢。

编辑:下面您可以从(快速)调试配置中看到优化设置对话框。启用COMDAT折叠,函数顺序和链接时间代码生成的选项都是空白的......我不知道“空白”是什么意思。我无法在发布配置中将启用COMDAT折叠,函数顺序和链接时间代码生成设置为空,下拉菜单中的每个都没有空白作为选项,我不知道按顺序设置它们为链接器提供最少量的工作。

enter image description here

编辑:似乎有不被禁用链接时代码生成的方式!在发布配置中这不是一个选项!

+0

您可以尝试禁用LTO。但等待10倍的时间链接发布版本与调试版本听起来很正常。 – Mikhail

+0

我想,但不明白选择什么来实现这一点。 – Mick

+0

在链接器/常规下,将Show Progress设置为“详细”,然后查看是否为您提供了特别是需要特别长时间的线索。 – abelenky

回答

2

除了禁用链接时优化,你可能也想尝试禁用整个程序的优化(在选择“C/C++ - >优化 - >所有程序优化”)。

Screenshot

the C++ team一些附加选项:

  1. /增量(接头)
  2. /ZC:直列(编译器)
  3. /调试:FASTLINK(接头)
  4. /LTCG:增量(连接器)

请注意,您可以在'配置属性>链接器>所有选项'下的VS中找到所有链接器选项。您可以搜索例如'链接时间码生成'。

+0

我看不到“配置属性>链接器”下的“所有选项”..我看到的只是一般,输入,清单文件,调试,系统,优化,嵌入式IDL,高级和命令行。 – Mick

+0

似乎你的版本VS与我的略有不同:-( – Mick