linux下編程開發(fā)視頻教程逆人行快速入門培訓(xùn)01gcc_第1頁
linux下編程開發(fā)視頻教程逆人行快速入門培訓(xùn)01gcc_第2頁
linux下編程開發(fā)視頻教程逆人行快速入門培訓(xùn)01gcc_第3頁
linux下編程開發(fā)視頻教程逆人行快速入門培訓(xùn)01gcc_第4頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、gcc入門(上)第一章1本章目標(biāo)什么是gccgcc特點gcc編譯過程gcc常用選項gcc編譯多文件2什么是gccgcc(GNU C Compiler)編譯器的作者是Richard Stallman,也是GNU項目的奠基者。什么是gcc:gcc是GNU Compiler Collection的縮寫。最初是作為C語言的編譯器(GNU C Compiler),現(xiàn)在已經(jīng)支持多種語言了,如C、C+、Java、Pascal、Ada、COBOL語言等。gcc支持多種硬件平臺,甚至對Don Knuth 設(shè)計的 MMIX 這類不常見的計算機都提供了完善的支持 3gcc主要特征gcc是一個可移植的編譯器,支持多種

2、硬件平臺gcc不僅僅是個本地編譯器,它還能跨平臺交叉編譯。gcc有多種語言前端,用于解析不同的語言。gcc是按模塊化設(shè)計的,可以加入新語言和新CPU架構(gòu)的支持gcc是自由軟件4gcc編譯程序的過程預(yù)處理(Pre-Processing)編譯(Compiling)匯編(Assembling)鏈接(Linking)5gcc編譯程序過程示意圖6 hello程序是一個高級語言程序,這種形式容易被人讀懂。為了在系統(tǒng)上運行hello.c程序,每條語句都必須轉(zhuǎn)化為低級機器指令。然后將這些指令打包成可執(zhí)行目標(biāo)文件格式,并以二進制形式存儲器于磁盤中。gcc常用選項選項名作用-o產(chǎn)生目標(biāo)(.i、.s、.o、可執(zhí)行文

3、件等)-c通知gcc取消鏈接步驟,即編譯源碼并在最后生成目標(biāo)文件-E只運行C預(yù)編譯器-S告訴編譯器產(chǎn)生匯編語言文件后停止編譯,產(chǎn)生的匯編語言文件擴展名為.s-Wall使gcc對源文件的代碼有問題的地方發(fā)出警告-Idir將dir目錄加入搜索頭文件的目錄路徑-Ldir將dir目錄加入搜索庫的目錄路徑-llib鏈接lib庫-g在目標(biāo)文件中嵌入調(diào)試信息,以便gdb之類的調(diào)試程序調(diào)試7gcc示例gcc -E hello.c -o hello.i(預(yù)處理)gcc -S hello.i -o hello.s(編譯)gcc -c hello.s -o hello.o(匯編)gcc hello.o -o hel

4、lo(鏈接)gcc hello.c -o hello(直接編譯鏈接成可執(zhí)行目標(biāo)文件)gcc -c hello.c或gcc -c hello.c -o hello.o(編譯生成可重定位目標(biāo)文件)8-Wall使用建議初學(xué)都加這個選項。下面這個例子如果不加-Wall選項編譯器不報任何錯誤,但是得到的結(jié)果卻不是預(yù)期的。#include int main(void) printf(Two plus two is %f, 4); return 0;9gcc編譯多文件hello_fn.hhello_fn.cmain.c一次性編譯gcc hello_fn.c main.c o newhello獨立編譯gcc -Wall -c main.c -o main.ogcc -Wall -c hello_fn.c -o hello_fn.ogcc -Wall m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論