腕のlinux-gccのオプション
SO 4ステップの前処理、コンパイル、アセンブリ、および通過するCファイルは実行可能ファイルへの接続となります。
前処理:
コマンドの先頭位数は、このようなコマンドの#includeを含むものとして、プリコマンドと呼ばれるコマンドの#defineマクロ定義、条件付きコンパイル命令の#ifは、#ifdefのように。前処理カザフスタンは、ソースファイルにファイルを保持するために起こっています
拡張マクロ定義、条件付きコンパイル命令コードが選択に従って使用、そして最終的に更なる処理を待つ「.I」ファイルにコードを出力します。前処理に使用するツールアームのlinux-CPP
コンパイルします。
コンパイルコードは、前述の「.I」ファイルとして、アセンブリコードに変換されます。このツールは、CCLを使用しています
アセンブリ:
コンパイルはアセンブリコードの出力段は、上記の一般的な性能にLinuxシステムで特定のフォーマットを満たすようにコンパイルされたマシンコードに変換され
ELFオブジェクトファイル(OBJファイル)として、Linuxのアームに使用するツール
接続:
上記のリンクは、OBJは、最終的に実行するには、プラットフォーム固有の実行可能ファイルを生成することができ、接続に尋ねたOBJファイルとシステムライブラリが生成され、ツールは、ARM-Linuxの-LDをするために使用しました
腕のlinux-gccのための
-vオプションと相まって、あなたはコンパイルの詳細を見ることができます
-c前処理、コンパイラやアセンブラソースファイルが、リンクではないが、コンパイラは、ソースファイルに基づいてOBJファイルを生成します。
-S停止コンパイル後、組み立てていません
前処理後の-E停止は、コンパイルされません。
-oファイルは、ファイルへの出力ファイルを指定します。
オブジェクトファイル、複数のアームのLinux-LD、ライブラリを接続する実行可能ファイル。
「-T」オプションは、コードセグメント、データセグメント、bssセクションの開始アドレスを指定するために直接使用することができ、また、接続スクリプト内に設けられた接続スクリプト、より複雑なアドレスを指定するために使用することができます。
-Tオプションは、ブートローダ、カーネルを接続するために使用され、そのソフトウェア「何の基盤となるソフトウェアのサポートはありません」され、-Tオプションを指定せずに、彼らが接続するデフォルトの接続を使用して、オペレーティングシステム上で動作するアプリケーションを接続します。
-Ttext startaddrスニペット実際startaddrに対処
データ・セグメントの開始アドレスは-Tdata startaddr startAddrあります
-Tbss startaddr bssセクションがstartAddrあるアドレスを開始
腕のlinux-LD -Ttext 0x00000000の-g led_on.o -o led_on_elf
データセグメント、bssセクションの開始アドレスのない定義がないので、それらがコードセグメントの後に配置されると、それは、アドレス0x00000000のためのオペレーティング・コード・セグメントを示します。