VC 编译器 (Visual Studio 2015) 不能 link 大 (>2G) 静态库文件

VC compiler (Visual Studio 2015) can not link big (>2G) static lib file

Visual Studio2015不能link大于2G的静态库。

错误是:

Can not find *.lib file.

我的问题是:它是为了什么而设计的?如果是,为什么?

32 位工具只能使用 2 GB 的虚拟地址 space(虽然它们是 /LARGEADDRESSAWARE 所以技术上在 64 位 OS 他们可以获得 3 GB虚拟 space)。因此,链接器可能只是耗尽了如此大的库上的虚拟地址 space。

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

要么设置环境变量:

set PreferredToolArchitecture=x64

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

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

See Sponsored Feature: RAM, VRAM, and More RAM: 64-Bit Gaming Is Here for the details on virtual address space limits in 32-bit vs. 64-bit apps.