VC编译器(Visual Studio 2015)无法链接大(> 2G)静态lib文件

时间:2017-06-15 03:55:11

标签: visual-c++ visual-studio-2015 lib

Visual Studio 2015无法链接大于2G的静态库。

错误是:

  

找不到* .lib文件。

我的问题是:它的目的是什么?如果是这样,为什么?

1 个答案:

答案 0 :(得分:2)

32位工具只能使用2 GB的虚拟地址空间(尽管它们是/LARGEADDRESSAWARE,因此技术上在64位操作系统上可以获得3 GB的虚拟空间)。因此,链接器可能只是耗尽这么大的库上的虚拟地址空间。

解决方案是使用x64本机工具而不是32位工具。

设置环境变量:

set PreferredToolArchitecture=x64

或编辑vcxproj,在<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

之后立即将以下内容添加到项目文件中
<PropertyGroup>
    <PreferredToolArchitecture>x64</PreferredTool‌​Architecture>
</Prope‌​rtyGroup>
  

有关32位与64位应用程序中虚拟地址空间限制的详细信息,请参阅Sponsored Feature: RAM, VRAM, and More RAM: 64-Bit Gaming Is Here