3

組み込みシステムで使用するために、プロジェクトとそれが依存するライブラリをクロスコンパイルしようとしています。アプリケーションと依存関係の両方が automake を使用します。ライブラリを問題なくコンパイルできました。

./configure --host=powerpc-none-linux-gnuspe --prefix=/home/me/build_dir
make
make install

すべてのx86ライブラリを使用してファイルシステムに出力を入れない--prefixように使用しました。また、実行する前に環境変数を設定make installせずにconfigureを実行してみました。彼らは同じことをしているようです。埋め込まれたターゲットのファイル システムのルートにtar を作成してドロップできるようにしたいと考えています。ホストマシンのどこかに絶対パスがハードコーディングされていないことを願っています。--prefixDESTDIRmake install/home/me/build_dir--prefix

次に、このライブラリを使用するアプリケーションをクロスコンパイルしようとしました:

./configure --host=powerpc-none-linux-gnuspe --with-sysroot=/home/me/build_dir

私は2つのことに遭遇しました。configure スクリプトは正常に完了しましたが、ヘッダーの 1 つが見つからなかったため、最初の make は失敗しました。/usr/includeの代わりに下を向いてい/home/be/build_dir/usr/includeます。--with-sysrootオプションでインクルードディレクトリも変更するべきではないですか、それとも何か不足していますか?

また、警告が表示されます

libtool: link: warning: library libstdc++.la was moved

私は何かを逃したような気がします。この警告は私が安全に無視できるものですか、それともどこかで台無しにしましたか?

私の質問を要約すると: 1) と の間に違いは./configure --prefix=xありmake DESTDIR=x installますか? 2) ライブラリ ヘッダーの検索パスを更新する正しい方法は何ですか? 3) libstdc++ に関する警告が表示されるのはなぜですか? また、心配する必要があるのですか?

4

1 に答える 1