クロスコンパイラ環境、すなわちインストール、設定、クロスコンパイラツールチェーンを構築します。等の組込みLinuxオペレーティングシステム、アプリケーションに必要なのUbuntu環境でコンパイルして、ターゲットマシンにアップロードしました。
クロスプラットフォームのアーキテクチャを処理するために、リンク、デバッグおよびプログラム・コードをコンパイルするクロスコンパイラツールチェーン。クロス開発ツールチェーンの場合は、ファイル名に加えて、プレフィックスにネイティブのツールチェーンを区別します。例えば、アーム-linux-示すクロスコンパイラツールチェーンをアームため、アーム-Linuxの-GCC GCCコンパイラを使用して表します。アーキテクチャに関連するコンパイルオプションに加えて、Linux上での使用とgccは同じをホストするので、同じことが組込みLinuxプログラミングに適用されます。ただし、ソフトウェアパッケージのバージョンの不一致に関するさまざまな問題がしばしばあり、どのバージョンを使用することができます持っていません。たとえば、カーネルをコンパイルし、コンパイル障害があるアームのLinux-GCC-3.4.1クロスコンパイラツールチェーンを使用してクロスコンパイラツールチェーンのアームのLinux-GCC-4.3.3バージョンを使用します。
GCCおよびアーム-Linuxの-GCCとの間の差は、プログラムによってコンパイルされたLinuxでのgcc C言語コンパイラは、コンパイルによってLinuxのC言語コンパイラの下で、クロスプラットフォーム、-Linuxの-GCCアームために、ローカルに実行されます埋め込まれた開発者のプログラムターゲットマシン上で(例えば、ARMプラットフォームとして)実装では、埋め込まれたクロスコンパイラツールチェーンを使用する必要があります。
命名規則は、
コンパイラツールチェーンの命名規則は交差:アーチ[-vendor] [-OS] [ - (GNU)EABI]
- アーチ - アーキテクチャは、そのようなARM、MIPSなど
- ベンダー - ツール・チェーン・プロバイダー
- OS - ターゲット・オペレーティング・システム
- EABI - 組み込みアプリケーションバイナリインタフェース(組み込みアプリケーションバイナリインタフェース)
オペレーティングシステムまたはしないためのサポート、ARM GCCのようなサポートされないサポートされるオペレーティングシステム、に分けることができます
- アームなし、EABI:これは当然、そのようなフォーク(2)のように、密接にオペレーティングシステムに関連するこれらの機能をサポートすることができない、オペレーティングシステムではありません。彼は、組み込みシステムのCライブラリに捧げ、このnewlibのを使用しています。
- アームなし - のlinux-EABI:Linux用、glibcでの使用
私の以前のブログで
ビューGCCコンパイラのバージョンとDE1-LINUXの実行
二つのブログの記事は、コンパイラを使用しています