Linux で s ファイルを生成するプロセスは「コンパイル」と呼ばれます。 Linux のコンパイラ gcc は、前処理された ".i" ファイルに対して構文解析、意味解析、最適化を実行してアセンブリ コード ファイル (".s" ファイル) を生成します。実行構文は "gcc -S ファイル名.i - o" です。ファイル名.s"; 次に、アセンブラはアセンブリ コード ファイルを中間オブジェクト ファイルに変換します。最後に、リンカ ld がオブジェクト ファイルを必要なスタティック リンク ライブラリおよびダイナミック リンク ライブラリにリンクして、実行可能ファイルになります。
#このチュートリアルの動作環境: 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; }
2. コンパイル
C ファイルを実行可能ファイルにコンパイルします実行するコマンド:gcc hello.c -o hello
3. 実行
実行: ./hello
Linux ビデオ チュートリアル 」
以上がLinux で s ファイルを生成するプロセスは何と呼ばれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。