【问题标题】:fatal error LNK1106: invalid file or disk full: cannot seek to 0x5A57BEBC致命错误 LNK1106:无效文件或磁盘已满:无法查找 0x5A57BEBC
【发布时间】:2013-09-09 16:18:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: visual-c++ visual-studio-2008 configuration linker


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      很抱歉复活这个旧帖子,但我昨天遇到了类似的问题,我的解决方案与我在网上找到的任何内容都无关。这是出现的第一个 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 之前会直接覆盖这些辅助文件。

      结论:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 2021-04-06
        • 2011-07-13
        • 1970-01-01
        相关资源
        最近更新 更多