クロスコンパイラを使用して何かをコンパイルするにはどうすればよいですか?

クロスコンパイラを使用して何かをコンパイルするにはどうすればよいですか?

クロスコンパイルについて学び、それを作成する方法について多くの情報を見つけましたが、使用方法に関する情報はほとんどありませんでした。

bluez-utils-3.36ツールをコンパイルしたいと思います。このウェブサイト私自身のコンパイラを使用してください。クロスコンパイラ(arm-linux-gcc-4.4.3.tgz)が見つかりました。このウェブサイト。私のgccバージョンは4.4.3なので、これが正しいバージョンであるとします。

ホスト(コードを作成するマシン)

Processor: Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz
OS Version: Linux 2.6.32-44 generic

ターゲットマシン:(コンパイルされたファイルを実行する必要があるターゲット)

Processor: ARM926EJ-S rev 5 (v5l)
OS Version: Linux 2.6.35.3-571

この新しいコンパイラでどのようにコンパイルしますかbluez-utils-3.36

ベストアンサー1

コンパイラとツールチェーンの他の部分には、GNU標準の命名スキームがあります。

<target triplet>-<tool name>

これ目標三重項これは形です

<machine>-<vendor>-<operatingsystem>

ツール名はコンパイラの名前、またはその他gccのツール名です。ldstripar

デフォルトのコンパイラ、つまりクロスコンパイラではなくネイティブバイナリをコンパイルするコンパイラは、gccトリプルなしで呼び出されます。

あなたの質問で言及したファイル内のコンパイラのトリプルは次のとおりですarm-none-linux-gnueabi(クワッドのように見えますが、それはまさにそれです)。したがって、これを使用するには、arm-none-linux-gnueabi-gccNormalの代わりに呼び出すだけですgcc

を使用して何かをビルドする場合は、通常、通常のMakefileコンパイラの代わりに実行してMakefile必要なコンパイラを使用できます。 GNUスクリプトを使用して何かを構築する場合は、CC=arm-none-linux-gnueabi-gcc makemakeconfigureターゲット三重項を指定することもできます。

おすすめ記事