一句話告訴你gcc怎麼編譯C文件
執行命令
gcc Tristone.c -o Tristone
解釋:將"Tristone.c"編譯為Tristone可執行文件,編譯完成以後"./Tristone"即可執行。
gcc的全稱是GNU C Compiler,原本設計出來是專門針對C語言的編譯器,後來擴展後也兼容了C++,java成了擴展版的GCC。
下面舉個實際的例子。
安裝GCC
CentOS Linux 8最小化安裝的時候,默認沒有安裝gcc,我們可以手動安裝一下。
root用戶執行命令:
dnf -y install gcc
默認安裝的gcc版本為8.2.1。
編寫一個C語言程序代碼
運行命令:
vi Tristone.c
把下列內容粘貼進去
#include<stdio.h>
int main()
{
printf("Hello,world!\\n");
return 0;
}
分步編譯測試
我們運行命令"gcc Tristone.c -o Tristone",其實編譯器走過了如下4個階段,我們可以一步一步看看都進行了什麼編譯工作:
(1)預處理階段(加入相應庫,宏替換等)
一個非常簡單的C文件預處理階段也會增加800多行的代碼,我們可以重定向到一個文件裡面查看。
gcc -E Tristone.c > Tri.e
(2)編譯階段(生成彙編程序)
gcc -S Tristone.c -o Tri.s
(3)彙編階段(把彙編語言程序彙編成機器語言指令,並使用可重定位目標程序的格式來打包指令)
gcc -c Tristone.c -o Tri.o
這一步生成的內容已經不是我們能讀懂的了。
(4)鏈接階段(合併各個打包好的機器語言指令,生成可執行二進制文件)
gcc Tri.o -o Tri
這個"Tri"已經是一個可執行的文件,運行一個後,將輸出一個"Hello,world!"
一步編譯
以上4步可以統一以下一個命令來實現:
gcc Tristone.c -o Tristone
格式:gcc 文件名.c -o 你需要執行文件名稱
從結果上看"Tri"和"Tristone"的文件大小是一樣的,也就是分步驟編譯和一步編譯,結果是一樣的。
自己寫一段C語言/C++的代碼或者從網上找一段代碼,使用Linux編譯一下試試吧。
閱讀更多 石哥話科技 的文章