手順接続とビルドプロセス

 

接続(リンク)は、コードの多様であり、データセグメントを収集し、合わせプロセスは、単一のファイルと呼ばれ、
ファイルがメモリに(コピー)ロードされ実行されてもよいです。

初期のコンピュータシステムでは、接続は手動で行われます。最近のシステムでは、接続がされ
、コネクタ(リンカ)と呼ばれるプログラムを自動的に実行されます。

main.cの
sum.c

ほとんどのコンパイラは、ユーザーが表すコンパイラシステムドライバ(コンパイラドライバ)、提供し
、必要なときに言語プリプロセッサ、コンパイラ、アセンブラ、リンカを呼び出します。

linux> gccの-0g -o progをmain.cのsum.c

ドライバは最初Cプリプロセッサ(CPP)を実行し、Cは、ソースコードのmain.cに翻訳される
中間ファイルmain.i ASCIIコード;
CPP [OTHER引数] main.cの/tmp/main.i

次に、ドライバはCコンパイラ(CC1)を実行し、それは、ASCII mian.iアセンブラに翻訳される
言語ファイルmain.s;
CC1 /tmp/main.i -0g [OTHER引数] -o /tmp/main.s

その後、ドライバは、アセンブラ(AS)を実行し、それが再配置可能なオブジェクトに翻訳mian.s
、ファイル(オブジェクトファイルReIO-catable)main.o
AS [OTHER引数] -o /tmp/man.o / TMP /main.s

同じプロセスを経てドライバがsum.o.を生成します 最後に、main.oれ、コネクタプログラムLDを実行
合わせ、sum.oならびに必要に応じてシステム・ターゲット・ファイル、実行可能オブジェクトファイルを作成し
、(executeableオブジェクトファイル)PROG
LD -o PROG [引数のシステムとオブジェクトファイル] /tmp/main.o /tmp/sum.o

実行可能ファイルのprogを実行するには、我々は、Linuxのシェルコマンドでその名前を入力します:
Linuxの> ./prog

関数は、ローダ(ローダ)と呼ばれ、オペレーティング・システム・シェルを呼び出し、それが実行ファイルであろう
メモリに複製PROGコードとデータと、プログラムの先頭に制御を移します。
 

おすすめ

転載: blog.csdn.net/baiyibin0530/article/details/91959895