我有一个项目 (x64) 需要很长时间才能链接。
我将链接设置为 VERBOSE,然后看着各种文字闪过,然后它说...
1> Finished searching libraries
1>
1> Finished pass 1
1>
1> Generating code
它会在此处保留最多一分钟。我想知道,它是否正在花时间,因为它正在尝试一些花哨的优化……或者是因为我有大量的静态数据?是否有任何链接器设置可以帮助加快速度?
顺便说一句,我有一台 16GB RAM 的 i7 PC,编译器和项目都存储在固态硬盘上。
编辑:调试版本的链接速度提高了 10 倍,但我需要使用发布版本,否则程序运行速度太慢。
编辑:您可以在下面看到来自(快速)调试配置的优化设置对话框。启用 COMDAT 折叠、函数顺序和链接时间代码生成的选择都是空白的……我不知道“空白”是什么意思。我无法在发布配置中将启用 COMDAT 折叠、函数顺序和链接时间代码生成设置为空白,它们每个的下拉菜单都没有空白选项,我不知道按顺序设置它们的内容给链接器最少的工作量。
编辑: 似乎没有办法禁用链接时间代码生成!在发布配置中这不是一个选项!
最佳答案
除了禁用链接时优化之外,您可能还想尝试禁用整个程序优化(在“C/C++ -> 优化 -> 整个程序优化”的选项中)。
来自 the C++ team 的一些附加选项:
- /增量(链接器)
- /Zc:inline(编译器)
- /debug:FASTLINK(链接器)
- /LTCG:增量(链接器)
请注意,您可以在 VS 中的“配置属性 > 链接器 > 所有选项”下找到所有链接器选项。在那里你可以搜索例如“链接时间代码生成”。
关于c++ - 诊断慢速链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016723/