日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Linux操作系統(tǒng)筆記——GCC編譯器

作者:晚風(●?σ ) 更新時間: 2022-05-13 編程語言

目錄

  • 一、GCC編譯器概念
  • 二、GCC支持的文件類型
  • 三、GCC編譯過程
    • (一)預編譯
    • (二)編譯
    • (三)匯編
    • (四)連接

一、GCC編譯器概念

  • GCC編譯器是GNU編譯器的套件,它是Linux操作系統(tǒng)中最常用的編譯器之一,是用于編程開發(fā)的編譯器,并支持多種編程語言,例如支持c/c++語言,還有java、go語言等等。

二、GCC支持的文件類型

GCC支持的常見文件類型有以下:

擴展名 說明
.c C源程序
.C/.cc C++源程序
.a 庫文件
.h 頭文件
.i 經(jīng)過預處理的C程序
.ii 經(jīng)過預處理的C++程序
.o 編譯后的目標程序

三、GCC編譯過程

(一)預編譯

首先GCC編譯器通過預編譯,讀取源程序,對頭文件、預編譯語句和一些特殊符號進行分析和處理,可以通過在gcc命令后跟參數(shù)-E,即可完成對代碼的預編譯,如下預編譯一個名稱為hello.c的C源程序:

gcc -E hello.c	//預編譯

hello.c文件內(nèi)容如下:

#include 
int main(){
  printf("Hello Linux!\n");
  return 0;
}

執(zhí)行命令后:
在這里插入圖片描述

[yyx@localhost ~]$ vi hello.c
[yyx@localhost ~]$ gcc -E hello.c

在這里插入圖片描述
將預編譯的結(jié)果保存在hello.i文件中,可以在后跟參數(shù)-o,確定輸出文件的名稱,執(zhí)行以下命令:

gcc -E hello.c -o hello.i

(二)編譯

編譯的作用是檢查代碼的語法和將無誤的預編譯后的文件轉(zhuǎn)換為匯編語言,并自動一個生成擴展名為.s的文件,即可完成對代碼的編譯,如下編譯一個名稱為hello.c的C源程序,后跟參數(shù)-S,表示進行編譯但不匯編,生成匯編代碼:

gcc -S hello.c

在Linux終端輸入命令:
在這里插入圖片描述

(三)匯編

匯編是將匯編代碼轉(zhuǎn)為目標代碼,其參數(shù)是-c,它會自動生成一個擴展名為.o的目標程序,即只編譯匯編,而不連接生成可執(zhí)行文件,如下:

gcc -c hello.c

(四)連接

連接的功能是連接目標代碼,并生成可執(zhí)行文件,也是通過gcc命令,通過對hello.o或hello.c文件都可以進行連接,后跟參數(shù)-o,從而確定可執(zhí)行文件的名稱,如下:

gcc hello.c -o hello

執(zhí)行下列命令:

[yyx@localhost ~]$ gcc hello.c -o hello
[yyx@localhost ~]$ ./hello

在Linux終端輸入命令,得到程序的執(zhí)行結(jié)果:
在這里插入圖片描述

原文鏈接:https://blog.csdn.net/qq_43085848/article/details/124694735

欄目分類
最近更新