版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章Linux編程工具使用,本章目標(biāo),VI工具使用 Gcc 編譯過程 Gdb調(diào)試程序方法 Linux庫文件和頭文件 Makefile工具 編寫簡(jiǎn)單的makefile文件,文本編輯工具vi,什么vi :vi是Linux/Unix底下最常用的文本編輯器。 vim:vim是vi的升級(jí)版本,它不僅兼容vi的所有命令,而且還加入了一些新的特性。,vi的三種工作方式,編輯方式,光標(biāo)定位 M 移動(dòng)光標(biāo)到頁面中央 L移動(dòng)光標(biāo)到頁面尾處 H移動(dòng)光標(biāo)到頁面開始處 Ctrl+f向后翻頁 Ctrl+b向前翻頁 0移動(dòng)光標(biāo)到行首 $移動(dòng)光標(biāo)到行尾 復(fù)制 粘貼 刪除 nyy 復(fù)制光標(biāo)所在的向下n行內(nèi)容 p在光標(biāo)處粘貼復(fù)
2、制的內(nèi)容 ndd刪除光標(biāo)所在向下n行的內(nèi)容 撤銷和重復(fù) u復(fù)原前一個(gè)動(dòng)作 . 重復(fù)前一個(gè)動(dòng)作,插入方式,i和I鍵插入:在目前光標(biāo)處輸入文字,已存在的文字會(huì)向后 A和a鍵:a為從目前光標(biāo)所在的下個(gè)字符處開始插入,A為從光標(biāo)所在行的最后一個(gè)字符開始插入 O和o:在目前光標(biāo)所在下一行處插入新的一行.O為在目前光標(biāo)所在處的上一行插入新行 R和r 取代:r會(huì)取代光標(biāo)所在的那個(gè)字符:R會(huì)一直取代光標(biāo)所在的文字,直到按下ESC為止,命令方式,退出命令 q 退出vi q! 不保存退出 wq! 保存退出 搜索字符串 輸入/+要查找的字符串 按n鍵重新查找下一個(gè) shell切換 !+shell命令 如 !ls l
3、 在vi中使用ls命令 Sp +filename 在同一個(gè)vi中編輯兩個(gè)文件,gcc,什么是gcc:gcc是GNU Compiler Collection的縮寫。最初是作為C語言的編譯器,現(xiàn)在已經(jīng)支持多種語言了,如C、C+、Java、Pascal、Ada、COBOL語言等。 gcc支持多種硬件平臺(tái),甚至對(duì)Don Knuth 設(shè)計(jì)的 MMIX 這類不常見的計(jì)算機(jī)都提供了完善的支持,gcc編譯程序的過程,預(yù)處理(Pre-Processing) 編譯(Compiling) 匯編(Assembling) 鏈接(Linking),gcc編譯程序過程示意圖,gcc常用選項(xiàng),gcc示例,gcc -E hel
4、lo.c -o hello.i(預(yù)處理cpp) gcc -S hello.i -o hello.s(編譯gcc) gcc -c hello.s -o hello.o(匯編as) gcc hello.o -o hello(鏈接ld) gcc hello.c -o hello(直接編譯鏈接成可執(zhí)行文件) gcc -c hello.c或gcc -c hello.c -o hello.o(編譯生成目標(biāo)文件),頭文件與庫文件,在使用C語言和其他語言進(jìn)行程序設(shè)計(jì)的時(shí)候,我們需要頭文件來提供對(duì)常數(shù)的定義和對(duì)系統(tǒng)及庫函數(shù)調(diào)用的聲明。 庫文件是一些預(yù)先編譯好的函數(shù)集合,那些函數(shù)都是按照可重用原則編寫的。它們通常
5、由一組互相關(guān)聯(lián)的用來完成某項(xiàng)常見工作的函數(shù)構(gòu)成。比如用來處理屏幕顯示情況的函數(shù)(curses庫)和數(shù)據(jù)庫訪問例程(dbm庫)等。,頭文件與庫文件位置,/usr/include及其子目錄底下的include文件夾 /usr/local/include及其子目錄底下的include文件夾 /usr/lib /usr/local/lib,靜態(tài)庫與共享庫,靜態(tài)庫(.a):程序在編譯鏈接的時(shí)候把庫的代碼鏈接到可執(zhí)行文件中。 共享庫( .so或.sa ):程序在運(yùn)行的時(shí)候才去鏈接共享庫的代碼,多個(gè)程序共享使用庫的代碼。,gdb,什么是gdb:gdb是GNU debugger的縮寫,是編程調(diào)試工具。,gdb
6、功能,啟動(dòng)程序,可以按照用戶自定義的要求隨心所欲的運(yùn)行程序。 可讓被調(diào)試的程序在用戶所指定的調(diào)試的斷點(diǎn)處停住 (斷點(diǎn)可以是條件表達(dá)式)。 當(dāng)程序停住時(shí),可以檢查此時(shí)程序中所發(fā)生的事。 動(dòng)態(tài)地改變程序的執(zhí)行環(huán)境。,gdb用法,make工具,人們通常利用 make 工具來自動(dòng)完成編譯工作。這些工作包括:如果僅修改了某幾個(gè)源文件,則只重新編譯這幾個(gè)源文件;如果某個(gè)頭文件被修改了,則重新編譯所有包含該頭文件的源文件。利用這種自動(dòng)編譯可大大簡(jiǎn)化開發(fā)工作,避免不必要的重新編譯。,Makefile,make 工具通過一個(gè)稱為 makefile 的文件來完成并自動(dòng)維護(hù)編譯工作。makefile 需要按照某種語
7、法進(jìn)行編寫,其中說明了如何編譯各個(gè)源文件并連接生成可執(zhí)行文件,并定義了源文件之間的依賴關(guān)系。當(dāng)修改了其中某個(gè)源文件時(shí),如果其他源文件依賴于該文件,則也要重新編譯所有依賴該文件的源文件。,Makefile基本規(guī)則,TARGET : DEPENDENCIES COMMAND 目標(biāo)(TARGET)程序產(chǎn)生的文件,如可執(zhí)行文件和目標(biāo)文件;目標(biāo)也可以是要執(zhí)行的動(dòng)作,如“clean”。 依賴(DEPENDENCIES)是用來產(chǎn)生目標(biāo)的輸入文件,一個(gè)目標(biāo)通常依賴于多個(gè)文件。,Makefile基本規(guī)則,命令(COMMAND)是make執(zhí)行的動(dòng)作,一個(gè)可以有多個(gè)命令,每個(gè)占一行。注意:每個(gè)命令行的起始字符必須為
8、TAB字符! 如果DEPENDENCIES中有一個(gè)或多個(gè)文件更新的話,COMMAND就要執(zhí)行,這就是Makefile最核心的內(nèi)容,最簡(jiǎn)單的Makefile例子,main:main.o add.o subtract.o gcc main.o add.o subtract.o -o main main.o:main.c add.h subtract.h gcc -c main.c -o main.o add.o:add.c add.h gcc -c add.c -o add.o subtract.o:subtract.c subtract.h gcc -c subtract.c -o subtract.o clean: rm -f m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場(chǎng)施工防生物災(zāi)害威脅制度
- 教職工勞動(dòng)保護(hù)制度
- 罕見腫瘤的個(gè)體化疫苗研發(fā)進(jìn)展
- 罕見腫瘤的個(gè)體化治療藥物相互作用管理策略與個(gè)體化治療-1-1
- 2026上半年云南事業(yè)單位聯(lián)考國(guó)土資源職業(yè)學(xué)院招聘39人備考題庫及一套參考答案詳解
- 2026中華人民共和國(guó)打洛海關(guān)城鎮(zhèn)公益性崗位人員招聘2人備考題庫(云南)及完整答案詳解一套
- 2026廣東惠州市博羅縣醫(yī)療保障局招聘編外人員1人備考題庫及完整答案詳解1套
- 出納兼采購(gòu)違反財(cái)務(wù)制度
- 造林專業(yè)合作社財(cái)務(wù)制度
- 小公司財(cái)務(wù)制度大全
- 攻擊面管理技術(shù)應(yīng)用指南 2024
- 波形護(hù)欄施工質(zhì)量控制方案
- 電梯井道腳手架搭設(shè)方案
- DL∕T 622-2012 立式水輪發(fā)電機(jī)彈性金屬塑料推力軸瓦技術(shù)條件
- 傳染病學(xué)-病毒性肝炎
- 重慶市沙坪壩小學(xué)小學(xué)語文五年級(jí)上冊(cè)期末試卷
- 陶瓷巖板應(yīng)用技術(shù)規(guī)程
- 中藥制劑技術(shù)中職PPT完整全套教學(xué)課件
- 龍虎山正一日誦早晚課
- WORD版A4橫版密封條打印模板(可編輯)
- 1比較思想政治教育
評(píng)論
0/150
提交評(píng)論