2012-08-16 11 views
6

Qt(Windows 7、mingw32-g ++ 32ビット、msys)をコンパイルしようとしていて、ldのメモリが不足しています。なぜ誰が知っていますか?それとも回避策ですか?ありがとう!g ++/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:/Pro 
grams/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 

i:/programs/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: o 
ut of memory allocating 133614056 bytes 
collect2.exe: error: ld returned 1 exit status 

+0

最初に十分なメモリがありますか? 130 MBは本当にたくさんありません。 – Mysticial

+0

@Mysticialは16GBのメモリを搭載していますが、プロセスがクラッシュしたときのメモリ容量は約2GBでした。 – chacham15

+5

コンパイラのようなサウンドは32ビットモードで動作しています。それはWindows上で2GBでそれを上限にします。あなたは64ビットを試しましたか? – Mysticial

答えて

5

私は、この問題の解決策を手助けしたすべてのコメント者に感謝します。私がしたのはldを大きなアドレス認識バージョンに置き換えたことでした。私はthis MinGWからbinフォルダ内にダウンロードしました。その分布をリンクする人物の投稿はhereです。私はこれがこの問題に遭遇する他の人々に役立つことを願っています。

2

あなたはMinGWの4.6またはそれ以降の現在のバージョンをインストールした場合、QTはフラグを指定する必要がありますコンパイルします

のconfigure -platformのWin32-G ++ - のwin32-Gのための "mkspecs" では4.6

++ 4.6既にあなたの問題を解決するフラグ-fno-keep-inline-dllexportを定義しました。

0

他の場所からld.exeをダウンロードしようとしましたが、私のツールキット(TDM-GCC)に適合しませんでした。一部のプラグインが読み込めませんでした。うまくいけば、ld.exe LAAを作ることはそれほど難しくありませんでした。私は16進エディタでld.exeを開き、オフセット0x96 "0f 03"から "2f 03"にパッチを当てました。それが私のトリックでした。

関連する問題