【问题标题】:VS2019 fatal error C1083: Cannot open compiler intermediate file: xxxx.ipdb: Not enough spaceVS2019致命错误C1083:无法打开编译器中间文件:xxxx.ipdb:空间不足
【发布时间】:2020-06-13 07:32:01
【问题描述】:

我正在使用 VS2019 构建 32 位版本。

1>------ Build started: Project: modulesLib, Configuration: Release Win32 ------
1>   Creating library ..\..\GeneratedFiles\Release32\\modulesLib.lib and object ..\..\GeneratedFiles\Release32\\modulesLib.exp
1>Generating code
1>Previous IOBJ not found, fall back to full compilation.
1>\modules\stdafx.h.cpp : fatal error C1083: Cannot open compiler intermediate file: '..\..\GeneratedFiles\Release32\\modulesLib.ipdb': Not enough space
1>LINK : fatal error LNK1257: code generation failed
1>Done building project "modulesLib.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 8 up-to-date, 0 skipped ==========

我已经发现删除 /GL 选项可以暂时解决它,但这不是解决方案。

我在系统驱动器上有很多可用空间,与发生编译的驱动器相同。我有 32GB 内存,64 位 Win10。

有什么解决办法吗?谢谢

编辑:根据接下来的观察,尽管 C1083 是编译器错误,原因是 32 位链接器内存不足(达到 3GB 并且进程崩溃)。我相信我在某处看到可以使用 64 位工具集生成 32 位应用程序。但是现在找不到了。

【问题讨论】:

  • 问题中ipdb文件的完整路径有多长?
  • @OMGtechy 它只有 64 个字符长。还有其他 IPDB 文件生成时没有问题。我相信原因是 linker.exe 内存不足(请参阅我上面的编辑)。

标签: c++ compiler-errors visual-studio-2019


【解决方案1】:

好的,我刚刚解决了。

这是由32位链接器引起的(虽然Cxxx错误是编译器错误)。

我显然达到了 /GL(全程序优化)开关的 3GB 限制。

解决方案是通过设置为 64 位的“首选构建工具架构”告诉 VS 使用 64 位工具编译 32 位应用程序

同样的选项也可以通过命令行(用于 MSBuild)或通过编辑 vcxproj 来设置:https://docs.microsoft.com/en-us/cpp/build/walkthrough-using-msbuild-to-create-a-visual-cpp-project?view=vs-2019#using-msbuild-with-the-64-bit-compiler-and-tools

【讨论】:

  • 很高兴你找到它!另一种选择是根据this 关闭内部链接,它会增加内存使用量......并不理想,但对于无法做到你所做的事情的任何人来说,另一种选择。
猜你喜欢
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-17
  • 2016-10-23
相关资源
最近更新 更多