crosstool-ngのおかげで、動作しているクロスコンパイラツールチェーンがあります:)-しかし、crosstool-ngは非常にまばらに文書化されており、クロスコンパイルはまったく新しいものです。このコンテキストでは、特定のホストとターゲットは重要ではないと思います。
ディレクトリ構造についていくつか基本的な質問があります。ツールチェーンは、ターゲットにちなんで名付けられたディレクトリにインストールされました。その中には一連のディレクトリがあります。
arm-unknown-linux-gnueabi
bin
include
lib
libexec
share
bin /のコンパイラはこの目的で動作するため、これは実際のクロスコンパイラビット用であると思います。内部にarm-unknown-linux-gnueabi/ディレクトリがあることに注意してください。つまり、そこにパスがあります../arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi
。その中に別の木があります:
bin
debug-root
include
lib
lib32
lib64
sysroot
lib*ディレクトリはsysroot/へのシンボリックリンクです。binにあるものは、親ディレクトリ/binにあるものと同じクロスコンパイルツールのセットのようです。
> bin/gcc -v
Using built-in specs.
COLLECT_GCC=./gcc
Target: arm-unknown-linux-gnueabi
Configured with: /usr/x-tool/.build/src/gcc-4.7.2/configure
--build=x86_64-build_unknown-linux-gnu
--host=x86_64-build_unknown-linux-gnu
--target=arm-unknown-linux-gnueabi
だから私の最初の質問は:これらは何のためにあるのですか?そして、このディレクトリは何のためにあるのでしょうか?
次に、私の2番目の質問は、sysroot/をどのように使用する必要があるかということです。どうやらターゲットプラットフォームにネイティブなサポートライブラリ用なので、そのようなライブラリを構築する場合は、それをとして使用する必要があると--prefix
思いますが、lib *はシンボリックリンクされているため、親ディレクトリを使用するのと同じことになります...ビンとsysrootまでのシンボリックリンクを持つこの「真ん中のディレクトリ」は混乱を招きます。(いくつかの)autotoolsスタイルのパッケージは「--with-sysroot」で構成できると思います。 それを見ると、その意味は何ですか?また、-prefixなどの他のオプションとの関連でどのように使用する必要がありますか?