【问题标题】:Possible to stop generating *.ipdb *.iobj files by VIsual Studio 2015?VIsual Studio 2015 可以停止生成 *.ipdb *.iobj 文件吗?
【发布时间】:2015-07-22 05:30:35
【问题描述】:

在 Visual Studio Community 2015 中,Visual C++ 项目在其 Release 文件夹中生成一个 *.ipdb 文件和一个 *.iobj 文件。

现在在 Visual Studio Community 2013 中,我从未见过在项目 Release 文件夹中生成这些文件,所以我想知道 -

是否可以停止生成它们?

【问题讨论】:

  • 您正在构建什么样的项目?您是否尝试将项目设置中的Output DirectoryIntermediate Directory 设置为不同的文件夹? ipdb 文件最终是在输出还是中间?
  • @Chuck Walbourn - Win32 控制台应用程序。是的,我有。 ipdb 文件最终位于 Output 文件夹中。

标签: visual-studio visual-c++ visual-studio-2015 ipdb


【解决方案1】:

这些文件是在启用Incremental Link-Time Code Generation (LTCG) 时生成的。这是 Visual C++ 2015 中的一项新功能。

如果禁用增量 LTCG,链接器将停止生成这些文件。但随后您将失去增量 LTCG 的好处。

要禁用增量 LTCG,请修改您的项目属性:在链接器 => 优化下,将“链接时间代码生成”更改为“使用快速链接时间代码生成 (/LTCG:incremental)”以外的其他内容(这是发布的默认设置构建)。

【讨论】:

  • 你知道为什么这些文件最终会出现在输出文件夹而不是中间文件夹吗?
【解决方案2】:

您无需禁用增量链接。由于 VS 2015 在 Linker/Optimization for Release 构建下的默认设置是“Fast Link Time Code Generation”(/LTCG:incremental)。您只需将其更改为“链接时间代码生成”(/LTCG),您将拥有增量链接,VS 将停止生成 *.iobj 和 *ipdb 文件。

【讨论】:

  • 如果你这样做,它是否不再“快”,因为它更慢?
【解决方案3】:

我相信它可以让您更快地生成项目,当它在控制台中打印那种消息时:

2 of 3 functions (66.7%) were compiled, the rest were copied from previous compilation.
1>    2 functions were new in current compilation
1>    0 functions had inline decision re-evaluated but remain unchanged
1>  Finished generating code

我不认为你可以删除它,但它是一个有用的工具 这是因为 PDB 生成占用了大部分编译时间。我相信您可以将其视为“预编译源”。

【讨论】:

  • 是的,重新编译取决于它们的存在。
  • 它在输出目录中结束是没有用的。
【解决方案4】:

Visual Studio 2019 版本 16.7 16.9 应根据此处的错误报告和讨论修复此行为:Intermediate ilk, iobj and ipdb files end up in $(OutDir) instead of $(IntDir)

【讨论】:

  • 欢迎提供解决方案链接,但请确保您的答案在没有它的情况下有用:add context around the link 这样您的其他用户就会知道它是什么以及为什么会出现,然后引用最相关的您链接到的页面的一部分,以防目标页面不可用。 Answers that are little more than a link may be deleted.
  • 我不确定你是否理解我写的内容。编译器中有一个错误。 Microsoft 将修复它...这就是解决方案:在修复发布后更新您的 Visual Studio。从我写的文字中,我觉得这很清楚。该链接仅作为参考材料存在,以证明我的陈述的准确性。
  • 幸运的是,16.7 在我发布此内容几个小时后发布。在这里找到它:visualstudio.microsoft.com/downloads
  • 这个问题似乎在 16.8.3 上仍然存在......它真的修复了吗?还是回归?
  • 这仍然会在 16.8.4 中发生!
猜你喜欢
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 2015-10-31
相关资源
最近更新 更多