【Linux學習筆記(四)】之gcc的編譯流程與相關參數

2020-08-11 18:18:49

本文章由公號【開發小鴿】發佈!歡迎關注!!!


老規矩–妹妹鎮樓:

一. gcc概述

        GNU編譯器套件(GNU Compiler Collection),是以GPL許可證所發行的自由軟體,現已被大多數Unix操作系統(Linux,BSD,Mac OS)採納爲標準的編譯器,GCC也同樣適用於Windows。

二. gcc流程

(一) gcc -E hello.c

        進行程式碼的預處理,展開標頭檔案,並且進行宏替換。生成hello.i檔案。

(二) gcc -S hello.i

        生成彙編程式碼,生成hello.s檔案。

(三) gcc -c hello.s

        將彙編程式碼編譯爲二進制檔案,生成hello.o檔案。

(四) ld hello.o

        鏈接操作,生成可執行檔案 hello.out。


三. gcc相關參數

(一)-I (大寫的i)

        當編譯的檔案中需要匯入其他標頭檔案時,直接用-I後面接標頭檔案所在的目錄。

gcc add.c -I./include/ -o app

(二)-D

        爲原始檔新增宏

gcc add.c -I./include/ -D DEBUG -o app

(三)-L

        爲原始檔新增包含的庫路徑

(四)-l

        爲原始檔需要的庫指定庫名。

(五)-o

        將原始檔編譯到指定的目標檔案中。


(六)-g

        用於gdb偵錯

(七)-Wall

        顯示更多的警告

(八)-E

        輸出到標準輸出,宏替換,標頭檔案展開

(九)-c

        編譯成二進制檔案,.0檔案

(十)-S

        生成彙編程式碼。