2

AIX でアプリケーションをコンパイルしようとしています。Linux、Solaris x86、および Windows で問題なくビルドできますが、AIX でのビルドを試みたのはこれが初めてです。すべてのライブラリを一緒にリンクするところまでたどり着きましたが、次のようなエラー メッセージが表示されました: Linking... ld: 0711-101 FATAL ERROR: Allocation of 96864 bytes failed in routine get_RLDs. 十分なメモリがありません。ulimit またはページング・スペースを確認するか、ローカルの問題報告手順を使用してください。collect2: ld が 12 の終了ステータスを返しました

ページスペースを 1GB 増やしました - 違いはありません ulimit 値を増やしました - 違いはありません maxdata フラグをリンカに渡そうとしました - 違いはありません

他に試すべきことはありますか?

問題の原因となっているライブラリを特定する方法がわかりません。私たちは、boost_date_time、xerces-c、libz、および 50 の内部ライブラリに対して静的にリンクしようとしています。動的リンクに変更できず、システムの構造をあまり変更できないため、ld を試すための構成またはパラメーターのアイデアを探しています。

4

1 に答える 1

3

問題は、データ セグメント サイズの ulimit であることが判明しました。どうやらそれはまだかなり小さく設定されていました。ulimit -d 1048575 のように大きくすると、リンカーはさらに先に進むことができます。ここで、これらすべての未定義シンボルに対して私が何をするかを理解するだけです。

于 2010-06-30T13:07:38.847 に答える