組み込みシステムで使用するために、プロジェクトとそれが依存するライブラリをクロスコンパイルしようとしています。アプリケーションと依存関係の両方が automake を使用します。ライブラリを問題なくコンパイルできました。
./configure --host=powerpc-none-linux-gnuspe --prefix=/home/me/build_dir
make
make install
すべてのx86ライブラリを使用してファイルシステムに出力を入れない--prefix
ように使用しました。また、実行する前に環境変数を設定make install
せずにconfigureを実行してみました。彼らは同じことをしているようです。埋め込まれたターゲットのファイル システムのルートにtar を作成してドロップできるようにしたいと考えています。ホストマシンのどこかに絶対パスがハードコーディングされていないことを願っています。--prefix
DESTDIR
make 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++ に関する警告が表示されるのはなぜですか? また、心配する必要があるのですか?