0

gcc 4.4.3をクロスコンパイルしようとしていますが、これはクロスライブラリです。クロスコンパイルに必要なすべての環境変数(AS、CC、CXX、AR、RANLIB、STRIP)を設定し、他の多くのものにも同じ設定を使用しましたが、すべて正常に機能しました。

現在、gcc自体も問題なくコンパイルされますが、サポートライブラリは本当に困惑しています。正常にコンパイルされるlibgccを除いて、makeを使用する場合は、次のようにしてください。
configure: error: C compiler cannot create executables

それらがすべて失敗するconfig.logのポイントは次のとおりです。
configure:2569: checking for C compiler default output file name
configure:2572: i686-pc-gnu-gcc -g -march=i686 -O2 -pipe -mtune=generic conftest.c >&5
/home/lnz/abs-hurd/cross/cross/libexec/gcc/i686-pc-gnu/4.4.3/cc1: error while loading shared libraries: libc.so.0.3: cannot open shared object file: No such file or directory

ここでの問題は、cc1がターゲットに使用されるlibcをロードしようとしていることのようです。lddは、このcc1がlibc.so.0.3(libc.so.6にリンクされている)をロードしようとしないことを確認します。libc.so.0.3もlibディレクトリから欠落していません。まったく同じコマンドconfigureがコマンドラインから使用しようとすると、すべてが正常に機能します。

これを手伝ってくれるといいですね。私はこれを何日も何の進展もなく見てきました。

4

2 に答える 2

0

straceをもう試しましたか?もちろん、おそらくそれに対して何らかのフィルタリングを行いたいと思うでしょう:-)。

于 2010-03-30T20:47:18.407 に答える
0

もちろん、4日間検索した後、ここに投稿してから30分後にグーグルで見つけました-.-

クロスコンパイル時にconfigureがターゲットライブラリディレクトリを使用しているように見えるため、私がしなければならなかったのはRPATH_ENVVARをLD_LIBRARY_PATHに設定することでした。

于 2010-03-30T22:35:36.883 に答える