为什么 g++/ld 内存不足

Why is g++/ld running out of memory?

本文关键字:内存不足 ld g++ 为什么      更新时间:2023-10-16

我正在尝试编译Qt(Windows 7,mingw32-g++ 32位在msys下),ld内存不足。有谁知道为什么?或者也许是一种解决方法?谢谢!

$ g++ -mthreads -shared -Wl,--out-implib,i:/Programs/Qt/lib/libQtGuid4.a -o ../../lib/QtGuid4.dll object_script.QtGuid.Debug -L'i:/programs/Qt/lib' -L'i:/Programs/Qt/lib' -LGDI32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32 tmp/obj/debug_shared/QtGuid_resource_res.o-lmsimg32 -lshell32 -lQtCored4 -lzi:/programs/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: o分配 133614056 字节的内存 UTcollect2.exe:错误:LD 返回 1 个退出状态

感谢所有帮助我找到解决此问题的评论者。我所做的是用大地址感知版本替换ld。我从 bin 文件夹内的这个 MinGW 构建下载了它。链接该分发的人的帖子在这里。我希望这可以帮助遇到这个问题的其他人。

如果您安装当前版本的 MinGW 4.6 或更高版本,则编译 QT 应指定标志:

配置 -平台 win32-g++-4.6

在win32-g++4.6的"mkspecs"中,已经定义了标志-fno-keep-inline-dllexport,它解决了您的问题。

我试图从其他地方下载ld.exe,但它不适合我的工具包(TDM-GCC)。某些插件无法加载。希望制作 ld.exe LAA 并不难。我已经在十六进制编辑器中打开了 ld.exe 并在偏移量0x96"0f 03"到"2f 03"处进行了修补。这对我来说起到了作用。