オブジェクトファイルと実行可能ファイルの違いは何ですか

目次:

Anonim

NS 主な違い オブジェクトファイルと実行可能ファイルの間は オブジェクトファイルはソースコードのコンパイル後に生成されたファイルであり、実行可能ファイルはリンカーを使用してオブジェクトファイルのセットをリンクした後に生成されたファイルです。

Cは、汎用の高級プログラミング言語です。さらに、それは効率的なプログラムを書くのを助ける構造化プログラミング言語です。オペレーティングシステム、言語コンパイラ、テキストエディタ、ネットワークドライバ、データベースは、Cプログラミング言語の一部のアプリケーションです。オブジェクトファイルと実行可能ファイルは、Cプログラミングに関連する2つのファイルです。

C言語、実行可能ファイル、オブジェクトファイル

オブジェクトファイルとは

まず、Cプログラムは、特定のタスクを実行するためにCプログラミング言語で記述された一連の命令です。このプログラムはソースコードと呼ばれます。プログラマーはソースコードを読んで理解することはできますが、CPUはそれを理解しません。そのため、ソースコードを機械が理解できる形式に変換する必要があります。オブジェクトコードは、ソースコードのコンパイル後に生成されます。

図1:ソースコード

オブジェクトファイルは、オブジェクトコードの別名です。 Windows環境では、オブジェクトファイルの拡張子は.objです。さらに、オブジェクトファイルにはがあります。 oLinux環境でのファイル拡張子。ただし、CPUはオブジェクトファイルを直接実行することはできません。

実行可能ファイルとは

Cプログラムを作成した後、構文エラーがある場合、プログラマーはそれらを編集する必要があります。ただし、構文エラーがない場合、コンパイラはソースコードをオブジェクトファイルに変換します。次に、リンカはリンクプロセスを実行します。コンパイラによって生成された1つ以上のオブジェクトファイルを受け取り、それらを1つの実行可能ファイルに結合します。さらに、他のプログラムファイルとプログラムが必要とする機能をリンクします。たとえば、プログラムに「exp()」関数がある場合、リンカーはプログラムをシステムの数学ライブラリにリンクします。

図2:実行可能ファイルの作成

プログラマーは実行可能ファイル内の命令を理解していませんが、CPUはそれらの命令を読み取って理解することができます。したがって、CPUは実行可能ファイルを直接実行して、プログラムで定義されたタスクを実行します。

オブジェクトファイルと実行可能ファイルの関係

オブジェクトファイルと実行可能ファイルの違い

意味

オブジェクトファイルは、直接実行できない再配置可能な形式のマシンコードを持つオブジェクトコードを含むファイルです。実行可能ファイルは、コンピュータが直接実行できるファイルであり、エンコードされた命令に従って指定されたタスクを実行できます。したがって、これはオブジェクトファイルと実行可能ファイルの主な違いを説明しています。

タイプ

オブジェクトファイルと実行可能ファイルのもう1つの違いは、オブジェクトファイルは中間ファイルですが、実行可能ファイルは最終ファイルであるということです。

機能性

CPUによる直接実行

また、CPUはオブジェクトファイルを直接実行できませんが、CPUは実行可能ファイルを直接実行できます。したがって、これはオブジェクトファイルと実行可能ファイルの大きな違いです。

結論

結論として、オブジェクトファイルと実行可能ファイルはCプログラミングに関連する2つのファイルです。オブジェクトファイルと実行可能ファイルの主な違いは、オブジェクトファイルはソースコードのコンパイル後に生成されるファイルであるのに対し、実行可能ファイルは一連のオブジェクトファイルをリンカを使用してリンクした後に生成されるファイルであるということです。

リファレンス:

1.「リンカー(コンピューティング)」。ウィキペディア、ウィキメディア財団、2018年10月6日、こちらから入手できます。

画像提供:

1. Romainhkによる「Cのソースコード」– Commons Wikimedia2を介した独自の作業(画像とコード)(CC BY-SA 3.0)。 Commons Wikimediaによる「C言語構築ステップ」(CC BY-SA 3.0)

オブジェクトファイルと実行可能ファイルの違いは何ですか