【问题标题】:Using 64 bit compiler in Visual C++ 2015在 Visual C++ 2015 中使用 64 位编译器
【发布时间】:2016-04-25 16:49:48
【问题描述】:

我有一个包含大量模板的 C++ 项目,但无法使用 fatal error C1060: compiler is out of heap space 进行编译。有大量可用的 RAM。我尝试使用 /Zm 编译器选项付款,但没有帮助。我可以看到 Visual Studio 使用了 32 位版本的编译器,我认为这就是这个错误的原因。有没有办法强制 Visual Studio 使用 64 位编译器?

更新

我的问题不是重复的。我看到了其他问题并尝试了这些建议。但在我的情况下,编译器需要超过 6 GB 的 RAM 来编译项目。这是 64 位编译器分配的最大 RAM 量。在使用msbuild 构建我的项目时,我可以使用 64 位编译器,但我想从 Visual Studio 构建它,并且默认情况下它使用 32 位编译器。我想强制它使用 64 位编译器。我所说的 64 位编译器是指不仅可以创建 64 位应用程序,而且本身就是 64 位应用程序的编译器。

【问题讨论】:

  • 看看这个问题并尝试@Colin Robertson 的评论
  • 切换 IDE 以使用 64 位编译器是火箭科学。您可能会遇到 $(VC_ExecutablePath_x64_x86);$(VC_ExecutablePath_x64_x64);$(WindowsSDK_ExecutablePath_x64);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\System32;$(FxCopDir);$(PATH)
  • @Lưu Vĩnh Phúc,是的,我试过这些。

标签: c++ visual-studio-2015


【解决方案1】:

参考https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx?f=255&mspperror=-2147217396#Anchor_1,可以使用x64 64-bit nativecompiler

为此,如https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx#Anchor_0 所述, 在命令提示符下运行vcvarsall amd64

然后,在命令行上运行devenv 时,添加/useenv 选项:

如果您使用 DEVENV 进行命令行构建,则 vcvarsall.bat 或 vcvars32.bat 设置的环境不会影响您的构建,除非您也 指定 /useenv 选项。

【讨论】:

    【解决方案2】:

    正如 Hans Passant 在 cmets 中所建议的,该问题的解决方案是将 可执行目录 更改为指向 64 位二进制文​​件的目录。 p>

    为此,您需要在 Visual Studio 中转到 C++ 项目属性 → VC++ 目录 → 可执行目录并将值替换为

    $(VC_ExecutablePath_x64_x64);$(WindowsSDK_ExecutablePath_x64);$(VS_ExecutablePat‌​h);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH)
    

    此更改强制 Visual Studio 使用 64 位 C++ 编译器。

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 2012-03-24
      • 2011-03-04
      • 1970-01-01
      相关资源
      最近更新 更多