深圳市寶安區(qū)怎么樣seo網(wǎng)站推廣的主要目的是什么
目錄
- 參考
- gcc概述
- gcc的工作流程
參考
gcc編譯器
gcc概述
編輯器vi、記事本)是指我用它來寫程序的 (編輯碼),而我們寫的代碼語句,電腦是不懂的,我們需要把它轉(zhuǎn)成電腦能懂的語句,編譯器就是這樣的轉(zhuǎn)化工具。就是說,我們用編輯器編寫程序,由編譯器編譯后才可以運(yùn)行!
編譯器是將易于編寫、閱讀和維護(hù)的高級計算機(jī)語言翻譯為計算機(jī)能解讀、運(yùn)行的低級機(jī)器語言的程序。
gcc (GNU Compiler Collection,GNU 編譯器套件是由 GNU 開發(fā)的編程語言編譯器。gcc原本作為GNU操作系統(tǒng)的官方編譯器,現(xiàn)已被大多數(shù)類Unix操作系統(tǒng)(如linux、BSD、Mac等)采納為標(biāo)準(zhǔn)的編譯器同樣適用于微軟的Windows。
gcc最初用于編譯C語言,隨著項(xiàng)目的發(fā)展gcc已經(jīng)成為了能夠編譯C、C++、Java、Ada、fortran、Object C、ObjectC++、Go語言的編譯器大家族。
編譯命令格式:
gcc [options] file…
g++ [options] file…
- 命令、選項(xiàng)和源文件之間使用空格分隔
- 一行命令中可以有零個、一個或多個選項(xiàng)
- 文件名可以包含文件的絕對路徑,也可以使用相對路徑
- 如果命令不包含輸出可執(zhí)行文件的文件名,可執(zhí)行文件的文件名會自動生成一個默認(rèn)名,Linux平臺為a.out,widnow平臺為a.exe
gcc是外部命令
gcc的工作流程
gcc編譯器從拿到一個c源文件到生成一個可執(zhí)行程序,中間一共經(jīng)歷了四個步驟:
四個步驟并不是gcc獨(dú)立完成的,而是在內(nèi)部調(diào)用其他工具,從而完成了整個工作流程:
# 1、進(jìn)行預(yù)處理
gcc -E hello.c -o hello.i
# 2、生成匯編文件
gcc -S hello.i -o hellp.s
# 3、生成目標(biāo)代碼
gcc -c hello.s -o hello.o
# 4、生成可執(zhí)行文件
gcc hello.o -o hello
# 5、執(zhí)行
./hello
也可以一步編譯完成
# 將源文件生成一個可執(zhí)行文件,等價于前面四步
gcc hello.c -o hello
# 執(zhí)行
./hello
選項(xiàng) | 作用 |
---|---|
-o file | 指定生成的輸出文件名為file |
-E | 只進(jìn)行預(yù)處理 |
-S(大寫) | 只進(jìn)行預(yù)處理和編譯 |
-c(小寫) | 只進(jìn)行預(yù)處理、編譯和匯編 |
-v/–version | 查看gcc版本號 |
-g | 包含調(diào)試信息 |
-On n=0~3 | 編譯優(yōu)化,n越大優(yōu)化得越多 |
-Wall | 提示更多警告信息 |
-D | 編譯時定義宏 |
# 顯示所有的警告信息
gcc -Wall test.c
# 將警告信息當(dāng)做錯誤處理
gcc -Wall -Werror test.c
-D定義宏用法
測試程序(-D選項(xiàng))
#include <stdio.h>1int main(void)
{printf("SIZE: %d n",SIZE);return 0;
}
執(zhí)行
deng@itcast:-/test$ gcc 2test.c -DSIZE=10
deng@itcast:-/test$ ./a.out
SIZE: 10