2

我在使用 Visual Studio 2008 时遇到了这个错误,我在网上找到了解决方案herehere。但我不知道如何配置link.exe.

如何设置in的/expectedoutputsize:600000000选项?我在该部分的项目属性中进行了搜索,但找不到该位置...我在解决方案和 Visual Studio 选项中进行了搜索。我找到了 linker.exe.config 但我不知道架构。linker.exeVS2008Linker

我的问题不是磁盘空间,我有足够的磁盘空间。有什么帮助吗?

4

2 回答 2

3

该选项必须添加到Project Settings->Librarian->Command Line->Additional options:文本框中。

于 2013-09-10T07:01:29.100 回答
0

很抱歉复活这个旧线程,但我昨天遇到了类似的问题,我的解决方案与我在网上找到的任何内容无关。这是出现的第一个 SO 帖子,所以我想如果有人遇到同样的问题,我会做出贡献。

这是我遇到问题的方式:

我最初有一个创建 exe 的项目:

  • MyProject.vcxproj -> MyProject.exe

然后,我通过将 main.cpp 拆分为单独的 .exe 项目,将原始项目转换为 .lib 项目。我将 exe 项目的目标名称设置为与 lib 相同,这样我们就不会更改我们的可执行文件名称。我还添加了一个使用该库但 main.cpp 略有不同的不同 .exe 项目

  • MyProject.vcxproj -> MyProject.lib
  • MyProjectVariant1.vcxproj -> MyProject.exe
  • MyProjectVariant2.vcxproj -> MyProjectVariant2.exe

我们的解决方案目前的布局方式是,所有项目都将它们的目标转储到同一个输出目录中。

问题是 .lib 和第一个 .exe 共享相同的目标名称,因此任何辅助文件(pdb 文件、iobj、ipdb 等)都会被覆盖。MyProject.exe 在链接到 MyProject.lib 之前会直接覆盖这些辅助文件。

结论:

我通过为第一个变体使用唯一的目标名称来“修复”该问题。我们还将审查我们的构建策略,看看我们是否应该为每个项目使用不同的输出目录,而不是将它们全部放在同一个位置。给他们不同的目标目录似乎更合乎逻辑。

于 2018-09-20T14:36:51.220 回答