经过一番网上研究后,我找到了解决方案。 ilink32.exe出现内存问题,您需要在计算机启动时启用3GB内存空间。如果再次出现此错误,这是我现在要执行的操作:
以管理员身份运行命令提示符。
- 类型(不带引号)“ bcdedit / set GrowthUserVa 3072”
突然,我突然发现LME288链接器错误。
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ilc: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ild: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ilf: 0x00010000 / 0x0a000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ils: 0x0003b000 / 0x08000000
[ilink32 Warning] Warning: unknown heap name : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: Error detected (LME288)
[ilink32 Error] Error: Unable to perform link
我没有安装AV,该项目已经运行了一年多。我尝试过:
here之前曾被问过,但没有给出真正的解释或解决方案。
我还能做什么解决此问题?
编辑我试图重建几个运行良好多年的其他项目,现在我所有项目都收到LME288错误。
但是,在2017年5月24日,Ashleigh Quick报告10.2 Tokyo的链接器仍不能解决问题: https://quality.embarcadero.com/browse/RSP-12869。同样,@ Ultralisk在下面的2020-01-09评论中报告了相同的问题。
但是仍然有希望:从东京10.2开始,您有了一些新的选项来控制LARGEADDRESSAWARE和链接器堆大小。 Dieter Woellner reported on 26-Oct-2017暂时设置了C ++-Linker |进阶| “ -GF:LARGEADDRESSAWARE”的“高级选项”条目消除了该问题。但是问题又回来了,他发现如果将TDS堆大小设置为小于0x08000000的值,就可以避免链接时出现错误/崩溃。 =====================================>我是将链接器黑客攻击为LAA,从而干扰了增量链接(我不需要)并解决了我的问题的客户之一。如果您打算继续使用10.1或更早版本中的链接器,并且不需要增量链接,请继续阅读。 =====================================> 我通过在 作为一项公共服务,我在这里发布了修补的ilink32.exe版本: RAD Studio 10 Seattle:https://s3.amazonaws.com/public-mfay/ilink32.exe/LARGEADDRESSAWARE
中设置ilink32.exe
标志解决了该问题。原始解决方案来自岛田裕之,使用editbin
,并于2016年1月12日发布在http://qc.embarcadero.com/wc/qcmain.aspx?d=134775。他还将其应用于bcc32.exe
;我不需要。RAD Studio 10.1柏林:https://s3.amazonaws.com/public-mfay/ilink32-10.1.exe
ilink32.exe
(例如,对于RAD Studio Seattle,为C:\Program Files (x86)\Embarcadero\Studio\17.0\bin
,对于柏林,为...\18.0\bin
),然后复制我的位置,将其重命名为ilink32.exe
。] >此问题已经存在很长时间了,不仅限于XE3,XE5,XE7,XE8 ... https://quality.embarcadero.com/browse/RSP-13247上有很长的讨论/哀叹,关于为什么在RAD Studio的一个版本中解决了这个问题但在更高版本中退出; / LAA显然是“与静态RTL增量链接时导致失败”。根据Dennis Jones在该线程中发布的28 / Mar / 16 12:14 PM,该/ LAA修补程序无法解决其他链接器错误“ EXE1825”或“内存不足”。
如果您想了解三种修补ilink32.exe的方式,请阅读以下内容...
lamarker -M -Filink32.exe
C:\Program Files (x86)\Embarcadero\Studio\17.0\bin
(或...\18.0\bin
)目录中执行此操作;如果有权限,它将把原始ilink32.exe
重命名为ilink32.exe.old
)-或-
editbin
,如果您已经安装了这样的文件(Microsoft声称editbin
必须在IDE中运行)。作为第一步,请复制bcc32.exe
和ilink32.exe
以防止UAC被阻止(并对其进行备份)copy "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin\bcc32.exe" .
copy "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin\ilink32.exe" .
editbin /LARGEADDRESSAWARE bcc32.exe
editbin /LARGEADDRESSAWARE ilink32.exe
-或-
使用
editbin
设置大地址感知标志:c:\masm32\bin\editbin.exe
。在安装MASM32的过程中,我收到了一些警告(涉及普通代码201和203),但它的自检通过了,我需要的只是editbin.exe
。经过一番网上研究后,我找到了解决方案。 ilink32.exe出现内存问题,您需要在计算机启动时启用3GB内存空间。如果再次出现此错误,这是我现在要执行的操作:
以管理员身份运行命令提示符。
我删除了列表中的所有文件(已选中所有复选框),以及“清理系统文件”
之后,即使不重新启动,我也可以编译和链接。甚至增量链接也重新开始工作!
ilink32.exe
的数据执行保护设置
系统属性->高级系统设置->性能->设置->数据执行保护
ilink32.exe
。在我的情况下,操作系统分配了大约1600 Mb。我将最小值设置为1,024,将最大值设置为3,072,重新启动,现在链接器工作正常。使用的数量为1,024(即使建议值约为1,900,也是如此)。
幸运的是,我有一台具有工作环境的计算机,同一项目在该计算机上进行了编译。我从该计算机的输出目录(Win32 / Debug)中将所有文件(* .exe,*。obj等)复制到了我遇到问题的那个目录,这神奇地使C ++ Builder正常运行。之后所有版本开始工作。
C:\ Program Files(x86)\ Embarcadero \ bin
编辑:我的“解决方案”仅持续了几个月。安装Microsoft Visual Studio之后,问题返回。
如另一个答案中所述:用以下方法修补ilink32.exe:>
lamarker -M -Filink32.exe
似乎是正确的解决方案。
编辑:我的“解决方案”仅持续了几个月。安装Microsoft Visual Studio之后,问题返回。
如另一个答案中所述:用以下方法修补ilink32.exe:>
lamarker -M -Filink32.exe
经过一番网上研究后,我找到了解决方案。 ilink32.exe出现内存问题,您需要在计算机启动时启用3GB内存空间。如果再次出现此错误,这是我现在要执行的操作:
以管理员身份运行命令提示符。
我删除了列表中的所有文件(已选中所有复选框),以及“清理系统文件”
之后,即使不重新启动,我也可以编译和链接。甚至增量链接也重新开始工作!
ilink32.exe
的数据执行保护设置
系统属性->高级系统设置->性能->设置->数据执行保护
ilink32.exe
。ilink32.exe
的数据执行保护设置
在我的情况下,操作系统分配了大约1600 Mb。我将最小值设置为1,024,将最大值设置为3,072,重新启动,现在链接器工作正常。使用的数量为1,024(即使建议值约为1,900,也是如此)。
幸运的是,我有一台具有工作环境的计算机,同一项目在该计算机上进行了编译。我从该计算机的输出目录(Win32 / Debug)中将所有文件(* .exe,*。obj等)复制到了我遇到问题的那个目录,这神奇地使C ++ Builder正常运行。之后所有版本开始工作。
C:\ Program Files(x86)\ Embarcadero \ bin