在Visual Studio中使用64位编译器

婆罗门

我使用Visual Studio2017。在一个项目(我的目标是x64)中,出现错误:C1060,编译器空间不足,不幸地发现那里存在编译的内存限制。

监视CL.exe时,实际上确实会在达到4GB之前停止。因此,看起来CL.exe默认为32位应用程序,如以下网址所示:https ://docs.microsoft.com/zh-cn/cpp/build/how-to-enable-a-64-bit-visual-命令行上的cpp工具集

阅读完此页面后,我安装了“通用Windows平台工作负载”,希望能够访问64位版本的CL.exe。但是在编译项目时没有任何变化,而且我在Visual Studio中看不到一个选择编译器版本的选项。

我认为必须存在一个变通办法,以便一个编译单元可以使用超过4GB的内存,但是我暂时找不到它。任何帮助将非常感激。

编辑:我在调试模式下遇到限制。在发布模式下,编译工作正常。这是合理的。

查克·沃尔本

默认情况下,Visual Studio使用32位工具链(即,编译器是32位并且可以交叉编译64位可执行文件)。Visual Studio 2015和2017包括所有编译器(x86,x64,arm,arm64)的32位和64位版本。

您可以通过以下两种方法选择在64位系统上使用64位工具链:

  1. 在构建机器上添加环境变量(在系统范围内或通过VS Developer命令提示符)。

例如:

set PreferredToolArchitecture=x64
devenv
  1. 您也可以vcxproj使用以下<PreferredToolArchitecture>x64</PreferredToolArchitecture>元素来编辑文件

例如:

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v141</PlatformToolset>
    <PreferredToolArchitecture>x64</PreferredToolArchitecture>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>

我在Direct3D游戏VS模板的UWP(C ++ / WinRT)版本中使用第二种方法,我只是注意到我应该将其添加到UWP(C ++ / CX)和Win32版本中。Xbox One XDK也会在其平台构建规则中自动执行此操作。

请注意,此问题已在过去得到解答:如何使Visual Studio使用本机amd64工具链

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio 2015-缺少64位编译器

在Visual C ++ 2015中使用64位编译器

在Visual Studio 2013中使用Roslyn编译器

配置Visual Studio 2013以允许ASPNETCOMPILER使用x64编译器进行预编译

如何在Visual Studio 2017中使用CMake设置编译器选项

如何在Visual Studio 2015中使用roslyn C#编译器?

如何在Visual Studio中使用更少的自动编译器

使用Visual Studio 2017的编译器在C ++ 17中使用Lambda编译Kevlin Henney的Fizzbuzz

使用Visual Studio编译器分析内联的C ++函数

C ++:使用Visual Studio编译器时的const指针

Visual Studio 编译器错误(不能使用逗号)

尝试(失败)在VSC终端中使用tsc在Visual Studio Code中运行(成功安装)TypeScript编译器

在Visual Studio中使用文字整数分配的奇怪行为会导致四个意外的编译器错误

g ++编译器为表达式提供<<类型错误,但可在Visual Studio中使用

如何使用 Visual Studio 编译器在 Windows 上编译 cython 编译的 c 代码

使用Visual Studio编译器在编译时获取矢量元素的大小(即使它为空)

使用g ++编译器在Visual Studio中编译C ++程序会在最后生成%

在Visual C ++ 2010编译器的code :: block中使用小部件库时,发生错误

在C ++程序中使用libcurl会导致Visual C ++编译器发出错误

如何在Windows下使用cmake生成使用Intel编译器的Visual Studio项目

Visual Studio-升级后的“未知编译器版本”

在Visual Studio中配置编译器优化选项

编译器错误CS1061 Visual Studio

Roslyn是Visual Studio 2017的默认编译器吗

JavaScript编译器在Visual Studio的各处都需要'==='而不是'=='

Visual Studio 2017找不到打字稿编译器?

这是Visual Studio 2010编译器中的错误吗?

Visual Studio C ++编译器怪异行为

如何衡量 Visual Studio 编译器的性能?