VC++的LNK1102 error out of memory 问题

Linker fatal error: LNK1102: out of memory 现象 在持续集成流水线中用msbuild编译32位的程序偶先报错:Linker fatal error: LNK1102: out of memory。 一般解决方法 谷歌之后找到了微软的官方文章,里面写了产生这个问题的原因和解决方法:https://support.microsoft.com/en-us/help/2891057/linker-fatal-error-lnk1102-out-of... 阅读详情

前几天把引擎的代码切换到VS2015下来了。光试了试X86的编译。

今天因为内存问题试了试X64。发现竟然链接不过。一链接就报告

LNK1102 error  out of memory

或者就死在链接的时候不动了。


尝试多种配置均不行。最后发现MS竟然默认是使用x86 cross tool来编译x64的代码的。

而且IDE里没找到配置修改成x64 native compiler的地方。


具体做法是打开vcxproj文件。在Globals的ItemGroup里加一条:

<PreferredToolArchitecture>x64</PreferredToolArchitecture>


改完看上去应该是这样的

  <PropertyGroup Label="Globals">
    <ProjectGuid>{FB492A4E-5E87-4845-931F-0B97E4EDEF87}</ProjectGuid>
    <RootNamespace>SystemManager</RootNamespace>
    <Keyword>Win32Proj</Keyword>
    <ProjectName>xEvol3D</ProjectName>
    <SccProjectName>Svn</SccProjectName>
    <SccAuxPath>Svn</SccAuxPath>
    <SccLocalPath>Svn</SccLocalPath>
    <SccProvider>SubversionScc</SccProvider>
    <PreferredToolArchitecture>x64</PreferredToolArchitecture>
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
  </PropertyGroup>


如果你使用CMD Line的话。

参考这篇文章

https://msdn.microsoft.com/library/x4d2c09s.aspx


我是在这里找到的。

https://support.microsoft.com/zh-cn/kb/2891057

fatal error C1002: 在第 2 遍中编译器的堆空间不足 的解决方案 编译的模块比较大时,可能会出现“fatal error C1002: 在第 2 遍中编译器的堆空间不足”这个问题,在网上搜索了一下,发现都不能解决问题。 后来偶然试了一下,发现使用64位的编译工具集即可以解决问题: 例如我使用的是vs2015: 执行vs2015的编译命令行:VS2015 x64 x86 兼容工具命令提示符,在此命令行中再执行:XXX.sln,即可使用vs2015打开解决方... 阅读详情

相关推荐

fatal error C1002: 在第2遍中编译器的堆空间不足

windows编译 TensorFlow gpu时报错fatal error C1002: 在第2遍中编译器的堆空间不足-G 指定生成目标版本。命令行输入cmake -G,可以查看可选的版本列表。-T host=64 是网上很多教程忽略的一点,我之前也用VS2017编译过,因为没有指定-T host=64,导致使用了32位的编译器,出现fatal error C1060: "编译器的堆空间不足"...

jacke121的专栏 7414

【错误记录】fatal error C1002: 在第2遍中编译器的堆空间不足

申请的一台物理主机,Windows Server 2003 使用Visual Studio2005编译一个很大的工程,第一遍没有问题,第二遍(或者之后几次,因为代码不断地修改再编译)发现出现如下错误 打开任务管理器,尼玛,原来Administrator用户开了三台虚拟机,只剩下1G的内存了。 杀掉几个其他不用的进程后,内存多了一点,再次编译成功。

ccscu的专栏 8855

Visual Studio 编译某个文件,卡住不动,而且内存一直在上升, 最后提示:fatal error C1002: 在第2遍中编译器的堆空间不足

原因:就是内存不够,找到报错的那个文件,然后,在内存足够的情况下,单独编译,看是否能过,如果编过了,那算了。 如果没编过,也没提示失败,就一直卡住,如下图: 看内存还会发现: 内存一直上升,这就是卡住的节奏呀,感觉总是再等待什么。 尝试了删除 编不过cpp中的代码,一点一点试,发现: 删除某些代码就可以编过,那就是编译优化的问题了。 于是:在卡住的cpp右键->属性->C/C++->优化: 可以尝试 用 O2, 再不行直接优化禁止,反正我是禁止了,就通过了。 ..

wx2013040726的博客 5087

MFC,LNK1102 内存不足

删除所有 *.pdb (DEBUG) 文件。可以只删除报错的项目。在VS2019中,编辑MFC,报错LNK1102 内存不足。

毛竹&依米 482

fatal error C1002: 在第 2 遍中编译器的堆空间不足 的解决方案

https://blog.csdn.net/andr0id/article/details/83899973

qq_37405874的博客 993

LNK1102 error out of memory

前几天把引擎的代码切换到VS2015下来了。光试了试X86的编译。 今天因为内存问题试了试X64。发现竟然链接不过。一链接就报告 LNK1102 error out of memory 或者就死在链接的时候不动了。 尝试多种配置均不行。最后发现MS竟然默认是使用x86 cross tool来编译x64的代码的。 而且IDE里没找到配置修改成x64 native compiler的地方。 具体做法是打开vcxproj文件。在Globals的ItemGroup里加一条: x64 改完看上去应该是这样的

ezrealik的博客 908

C++ 内存泄漏与溢出

内存泄漏与溢出

花言的博客 2008

vs编译遇见编译器堆空间不足,解决办法

首先打开.vcxproj文件,在文件中找到这个节点<PropertyGroup Label="Globals">, 然后在这个节点的最后加一句<PreferredToolArchitecture>x64</PreferredToolArchitecture>,这样就可以完美的解决编译器堆空间不足问题。 ...

Pailugou的博客 8669

编译血泪史】windows 以cmake+vs 编译cpu版tensorflow.dll和tensorflow.lib

前半部分使用下面这篇文章的方法进行设置。 https://blog.csdn.net/heiheiya/article/details/89243971 注意:必须严格使用作者所使用的软件版本,VS使用64位版本。 使用 VS 2015 打开tensorflow.sln之后,将 “ALL_BUILD”属性中 “配置类型” 从 “实用工具“ 修改为 ”动态库(.dll)“, 将 ”MFC的使...

Markfieraloha的博客 915

使用Cythonize对pyqt5的ui文件编译时,报“致命错误C1002:编译器在第2遍中的堆空间不足“

使用Cythonize对pyqt5的ui文件编译时,报“致命错误C1002:编译器在第2遍中的堆空间不足"

qq_47457432的博客 659

Visual studio 内存不足的解决方案(out of memory

编译Visual Studio项目,如果出现"out of memory "的编译错误,可以进行如下操作,加大应用程序可以使用的内存。   请先备份好系统和设置好系统还原点,大体步骤是这样的: 打开3G内存支持开关,使操作系统应用程序可以使用3G内存   [xp/2003]  打开c:\boot.ini (它是隐藏的,只读的), ,添加红色字体部分 [bootlo...

weixin_30297281的博客 5940

webrtc-windows平台编译以及异常处理(3)

window平台webrtc编译编译参数和异常处理的详细说明

m0_46597409的博客 1746

fatal error C1060:编译器的堆空间不足“——C1001错误代码

这个错让人很无语,最初遇到这个问题,以为是内存的问题,买了内存条加内存,加完内存还是不行,错误代码C1001也报过,错误代码C1060一直报,让人很崩溃,最后导致快放弃找解决方法。 编译器报这个错误,微软官网(https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-1/fatal-error-c1060?view=v...

huijielic的博客 1万+

C++调用动态库是出现“LNK110无法打开文件DemoDll.lib“

C++调用动态库时出现LNK110(无法打开.lib文件)问题 建好动态库之后创建新项目调用 其中在属性-连接器-输入-常规-附加依赖项中需要设置依赖项目,类似: 此是需要在项目文件夹Debug中的.lib文件复制到自己创建的调用项目中,这里我自己写的是DemoInvokeDll中 复制完成之后选择项目右键点击重新生成,显示结果成功 之后点击设置为启动项目然后本地运行就可以了! ...

CSDNdk1997的博客 2971

编译webkit出现 LNK1102out of memory

最近升级webkit,发现webkit多了很多文件,在编debug版的时候到没什么问题,但编release版时却在最终链接webkit.dll的时候出现了out of memory的错误,我就奇怪了。我有3G的内存,怎么也会出现link of memory的错误了?我又试着加大虚拟内存,还是没法链过。我又试着在4G内存的机器上,还是无法链过。我到网上找资料,也没找到解决方法。后来我想了一下,web

xu的blog 3844

工具使用心得和错误解决方案

一.vs2008 当连接器报出LINK: fatal error LNK1102: out of memory时,解决方法: 首先调出任务管理器,然后在进程页面中,找到mspdbsrv.exe,将其关掉。删掉项目相关的pdf等中间文件(假如项目Test,那么删除以Test为文件名的所有中间文件)。重启vs,重新链接即可。或者前三步都不做,直接重启。 经常使用PostBuild

xujiezhige的专栏 3270
上一篇: VC++的一个奇怪的C2732错误
下一篇: PHP 5.4升级5.6后访问SQLServer失败
潘李亮
博客等级 码龄25年 743粉丝 246原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值