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</PreferredToolArchitecture>
</PropertyGroup>
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.
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</PreferredToolArchitecture>
</PropertyGroup>
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.