ホームページ  >  記事  >  運用・保守  >  Linux で s ファイルを生成するプロセスは何と呼ばれますか?

Linux で s ファイルを生成するプロセスは何と呼ばれますか?

青灯夜游
青灯夜游オリジナル
2022-06-17 11:46:253905ブラウズ

Linux で s ファイルを生成するプロセスは「コンパイル」と呼ばれます。 Linux のコンパイラ gcc は、前処理された ".i" ファイルに対して構文解析、意味解析、最適化を実行してアセンブリ コード ファイル (".s" ファイル) を生成します。実行構文は "gcc -S ファイル名.i - o" です。ファイル名.s"; 次に、アセンブラはアセンブリ コード ファイルを中間オブジェクト ファイルに変換します。最後に、リンカ ld がオブジェクト ファイルを必要なスタティック リンク ライブラリおよびダイナミック リンク ライブラリにリンクして、実行可能ファイルになります。

Linux で s ファイルを生成するプロセスは何と呼ばれますか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux で C ファイルを実行可能ファイルにコンパイルするプロセス

gcc を使用して C ファイルを実行可能ファイルにコンパイルするファイルは分離可能 プリコンパイル、コンパイル、アセンブリ、接続の 4 つのステップです。

1. プリコンパイル (.i ファイルの生成)

プリコンパイラー cpp は、ソース ファイルと関連ヘッダー ファイルをコンパイルします (たとえば、例のコードのヘッダー ファイル stdio.h は、.i ファイルにプリコンパイルされます。

実行したコマンド: gcc -E ファイル名.c -o ファイル名.i

プリコンパイルの機能:

a、すべての「#」を処理include" プリコンパイル ディレクティブ

b、すべての "#define" ディレクティブを処理し、コード内のすべての "#define" を削除し、すべてのマクロ定義を展開します。

c、すべての条件付きプリコンパイル ディレクティブを処理します。 #if #elif #else #ifdef #ifnodef #endif など。

d、すべてのコメントを削除

e、プロンプト メッセージを表示するために行番号とファイル名識別子を追加エラー発生時

#2, コンパイル (<span style="color: rgb(255, 0, 0);">.s</span> ファイルを生成)

コンパイラ gcc は、前処理されたファイルに対して構文分析、意味分析、および最適化を実行して、アセンブリ コード ファイルを生成します。

実行コマンド: gcc -S ファイル名.i -o ファイル名.s

##3. アセンブリ(.o ファイルの生成)

アセンブラは、アセンブリ コード ファイルを中間オブジェクト ファイルに変換します。

実行されるコマンド:

gcc -c ファイル名.s -o ファイル名.o (注: ここでは、大文字の -C ではなく、小文字の -c。ここで罠を踏んだため、例外が発生しました)

4. リンク (実行可能ファイルの生成)

リンカー ld のリンク必要な追加ターゲット ファイル (スタティック リンク ライブラリ、ダイナミック リンク ライブラリなど) をすべて含むターゲット ファイルを実行可能ファイルに変換します

実行されたコマンド:

gcc ファイル名 o -o ファイル名

Linux で c ファイルを実行可能ファイルにコンパイルする例

1. C ファイルの準備

コマンド ライン モードで、「vim hello.c

」と入力して編集モードに入り、次のコードを入力します:

#include<stdio.h>

int main(void){
    printf("Hello World!\n");
    return 0;
}

まず ESC キーをクリックして編集モードを終了し、次に Enter キーを押します。 wq (入力するときはコロンに注意してください) と入力してコマンド ラインに戻ります。

2. コンパイル

C ファイルを実行可能ファイルにコンパイルします

実行するコマンド:

gcc hello.c -o hello

ls コマンドを入力すると、現在のフォルダーに追加のファイルがあることがわかります: hello

3. 実行

実行:

./hello

は hello World! を出力できます。

関連する推奨事項: 「

Linux ビデオ チュートリアル

以上がLinux で s ファイルを生成するプロセスは何と呼ばれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。