c++ - 诊断慢速链接

标签 c++ visual-studio-2015

我有一个项目 (x64) 需要很长时间才能链接。

我将链接设置为 VERBOSE,然后看着各种文字闪过,然后它说...

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

它会在此处保留最多一分钟。我想知道,它是否正在花时间,因为它正在尝试一些花哨的优化……或者是因为我有大量的静态数据?是否有任何链接器设置可以帮助加快速度?

顺便说一句,我有一台 16GB RAM 的 i7 PC,编译器和项目都存储在固态硬盘上。

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

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

enter image description here

编辑: 似乎没有办法禁用链接时间代码生成!在发布配置中这不是一个选项!

最佳答案

除了禁用链接时优化之外,您可能还想尝试禁用整个程序优化(在“C/C++ -> 优化 -> 整个程序优化”的选项中)。

Screenshot

来自 the C++ team 的一些附加选项:

  1. /增量(链接器)
  2. /Zc:inline(编译器)
  3. /debug:FASTLINK(链接器)
  4. /LTCG:增量(链接器)

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

关于c++ - 诊断慢速链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016723/

相关文章:

c++ - 为什么 C++20 范围适配器的返回 View 不是常量表达式?

c++ - 在用户定义的类 C++ 中重载下标运算符

javascript - Visual Studio 无法识别导入的 npm 包?

c++ - 想要在发票程序中使用 while 或 for 循环将字符串项与 C++ 中的整数值匹配

c++ - Windows 上的 nmake 行为

asp.net-mvc - 如果流媒体无法发布网站

c++ - 无法调用 std::function

visual-studio - “Setup has detected that Visual Studio 2015 Update 3 may not be completely installed…”

c++ - QT特别评论//://[num] etc

asp.net-mvc - 如何在 Visual Studio 2015 中快速解析命名空间