コンパイルプロセスのCコンパイラ

コンパイラのプリプロセッサ、コンパイラ、アセンブラ、リンカ。

プリコンパイル済み

代わりに、スペースにすべてのコメントを処理

すべての#defineを削除し、すべてのマクロ定義を展開します

条件付きコンパイルディレクティブの#を場合、処理、#IFDEF、#elifの、他の#、#endifの

含まれるファイルを展開する、の#includeを処理

#pragma指令は、使用するコンパイラのニーズを保持します

gccの前処理ディレクティブ:gccを-E file.cと-o file.i

 

コンパイル

前処理ファイルの解析、字句解析と意味解析

字句解析:キーワード、識別子、および他の即時の合法性

パース:発現の分析は、文法の規則に従うかどうか

セマンティック分析:表現のさらなる分析は、文法的分析に基づいて正当なものです

分析の後に生成されたコードの最適化に対応するアセンブリコードファイル

GCCコンパイラディレクティブ:gccの-S file.i -o file.s

 

 

 

 

編集

マシンにコンパイルアセンブラ命令実行可能コード

各アセンブリ文は、ほとんどのマシン命令に対応します

gccの-c file.s -o file.o

 

リンク

 

 

概要

コンパイルプロセスは、前処理、コンパイル、アセンブル、リンク4つの段階で構成されてい

前処理:注釈処理、マクロ、および#で始まるシンボル

コンパイル:前処理ファイルの構文解析、字句解析と意味解析

アセンブリ:マシンにアセンブラ命令実行可能コード

 

公開された28元の記事 ウォンの賞賛9 ビュー5600

おすすめ

転載: blog.csdn.net/rookiegan/article/details/104886866