【发布时间】:2012-08-12 08:22:46
【问题描述】:
我正在尝试编译 Qt(Windows 7,msys 下的 mingw32-g++ 32 位)并且 ld 内存不足。有谁知道为什么?或者也许是一种解决方法?谢谢!
$ g++ -mthreads -shared -Wl,--out-imlib,i:/Programs/Qt/lib/libQtGuid4.a -o ../ ../lib/QtGuid4.dll object_script.QtGuid.Debug -L'i:/Programs/Qt/lib' -L'i:/Pro 克/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 -lz 我:/programs/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe:o ut 内存分配 133614056 字节 collect2.exe:错误:ld 返回 1 退出状态【问题讨论】:
-
你有足够的内存吗? 130 MB 并不是很多...
-
听起来编译器在 32 位模式下运行。这将在 Windows 上限制为 2GB。你试过 64 位吗?
-
mingw-w64 有一个 64 位工具链。
-
如果你喜欢冒险,你可以尝试使用
editbin /largeaddressaware ld.exe让ld.exe感知大地址——editbin 带有Microsoft C/C++ 工具链,也许它也在SDK 中。这将为进程提供 4GB 可用空间,但如果程序在处理设置了高位的指针时存在错误(这是一个常见问题,这就是为什么图像标题中有一个特殊位来启用该功能),您可能会遇到其他问题。因此,请制作ld.exe的备份副本,以便在必要时恢复。