1

CodeSourceryのarm-none-linux-gnueabiを使用してクロスコンパイルするようにutil-linuxを構成しようとしています。これまでの私の唯一の問題は、コンパイルしたncursesライブラリが見つからないことです。

ld検索パスにディレクトリを追加するにはどうすればよいですか?LIBRARY_PATH変数とLD_LIBRARY_PATH変数に追加しようとしましたが、どちらも何もしません。-Lフラグをgccに追加すると、リンカーパスに追加されることはわかっていますが、これをグローバルに実行して、一度実行でき、再度心配する必要がないようにする方法はありますか?

これがの出力ですarm-none-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed 's/:/\n/g'

libraries
 =/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../lib/gcc/
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/
/tools/bin/../arm-none-linux-gnueabi/libc/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../arm-none-linux-gnueabi/libc/lib/
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/

とをld検索パスに追加/arm/usr/libしたいと思います。/arm/usr/local/lib

他のコマンドからの出力が必要な場合は、質問してください。

編集: CFLAGS環境変数について知りました-すべての構成スクリプト/メイクファイルはそれを尊重しますか?

ありがとうございました!

4

1 に答える 1

2

コンパイルした ncurses ライブラリが、クロスコンパイルしている ARM バイナリにリンクされる場合、LD_LIBRARY_PATH は使用できません! LD_LIBRARY_PATH は、現在のランタイムによってのみ使用され、アプリケーションのビルド時にコンパイラまたはリンカーによって使用されることはありません。

CFLAGS の使用は、Makefile の作成者によって異なります。CFLAGS は、環境変数として定義されていても、自動的には使用されません。autoconf ツールのようなツールのみが、環境からそれらを取得して自動的に使用できます。Makefile で次のようなものを見つけます。

$(CC) $(CFLAGS) ....


このフラグメントが存在する場合、Makefile は CFLAGS 変数を使用します。LDFLAGS は、リンク時のオプションに使用するより適切な環境変数です。

于 2012-02-14T06:26:15.183 に答える