gcc編譯源文件一步到位的命令就是 實際上這一步包含了四步: 1.預處理 預處理功能主要包括巨集定義,文件包含,條件編譯三部分。分別對應巨集定義命令,文件包含命令,條件編譯命令三部分實現。預處理過程讀入源代碼,檢查包含預處理指令的語句和巨集定義,並對源代碼進行響應的轉換。預處理過程還會刪除程式中的註釋和多 ...
gcc編譯源文件一步到位的命令就是
$ gcc demo.c -o demo
實際上這一步包含了四步:
1.預處理
$ gcc -E demo.c demo.i
預處理功能主要包括巨集定義,文件包含,條件編譯三部分。分別對應巨集定義命令,文件包含命令,條件編譯命令三部分實現。預處理過程讀入源代碼,檢查包含預處理指令的語句和巨集定義,並對源代碼進行響應的轉換。預處理過程還會刪除程式中的註釋和多餘的空白字元。
預處理指令是以#號開頭的代碼行。#號必須是該行除了任何空白字元外的第一個字元。#後是指令關鍵字,在關鍵字和#號之間允許存在任意個數的空白字元。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對源代碼做某些轉換。 2.編譯(編譯為彙編代碼)$ gcc -S demo.i -o demo.s
3.彙編
$ gcc -c demo.s -o demo.o
gas彙編器將彙編代碼編譯為目標文件
4.鏈接
$ gcc demo.o demo
gcc連接器是gas提供的,負責將程式的目標文件與所需的所有附加的目標文件連接起來,最終生成可執行文件。附加的目標文件包括靜態連接庫和動態連接庫
多文件編譯:
$ gcc demo1.c demo2.c -o demo