課件80課時(shí)培訓(xùn)android和-04.linux開發(fā)入門_第1頁
課件80課時(shí)培訓(xùn)android和-04.linux開發(fā)入門_第2頁
課件80課時(shí)培訓(xùn)android和-04.linux開發(fā)入門_第3頁
課件80課時(shí)培訓(xùn)android和-04.linux開發(fā)入門_第4頁
課件80課時(shí)培訓(xùn)android和-04.linux開發(fā)入門_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

大綱Linux下程序開發(fā)一般流程GCC編譯器使用簡介make簡介GDB調(diào)試器使用簡介如何在Linux下運(yùn)行程序2大綱Linux下程序開發(fā)一般流程GCC編譯器使用簡介make簡介GDB調(diào)試器使用簡介如何在Linux下運(yùn)行程序34Linux下程序開發(fā)一般流程Windows應(yīng)用程序開發(fā)一般流程打開VC6.0,新建工程使用C語言編寫源程序?qū)⒃闯绦虮4娉?c文件,以及.h頭文件等點(diǎn)擊編譯按鈕,編譯程序點(diǎn)擊運(yùn)行按鈕,運(yùn)行程序觀察結(jié)果或者點(diǎn)擊調(diào)試按鈕,使用鼠標(biāo)來調(diào)試程序5Linux下程序開發(fā)一般流程很遺憾,常見的Linux下的應(yīng)用程序開發(fā)過程中,并不像Windows下使用IDE等軟件來完成Linux應(yīng)用程序開發(fā)一般流程使用普通文本編輯器(甚至使用命令行模式的文本編輯器)編寫程序?qū)⒃闯绦虮4娉?c文件,以及.h頭文件等使用GCC或者make自動編譯工具編譯程序在命令行下運(yùn)行程序或者在命令行下敲命令來調(diào)試6大綱Linux下程序開發(fā)一般流程GCC編譯器使用簡介make簡介GDB調(diào)試器使用簡介如何在Linux下運(yùn)行程序7GCC編譯器使用簡介GCC是GNU工具箱的一部分GCC是符合ISO標(biāo)準(zhǔn)的C編譯器,它在需要的時(shí)候調(diào)用其它組件(預(yù)處理器、匯編器、連接器)。輸入文件的類型和傳給gcc的參數(shù)決定了

gcc調(diào)用哪些組件。gcc提供了足夠的參數(shù),可以讓開發(fā)者全面控制代碼的生成。GCC編譯器使用簡介GCC識別的主要文件擴(kuò)展名如下:.cC語言代碼.C,.ccC++語言代碼.i預(yù)處理后的C語言代碼.ii預(yù)處理后的C++語言代碼.s,.S匯編語言代碼.o目標(biāo)代碼.a.so靜態(tài) 庫(程序編譯時(shí)使用)動態(tài) 庫(程序運(yùn)行時(shí)使用)8GCC編譯器使用簡介GCC常用編譯選項(xiàng)如下:-c

只生成object文件,不-E

只運(yùn)行C預(yù)編譯器cpp-g

生成可被gdb使用的標(biāo)準(zhǔn)調(diào)試信息-o

FILE

生成指定的輸出文件“FILE”-lLIBRARY

指定

時(shí)需要的其它函數(shù)庫“l(fā)ibLIBRARY.so”-S止工作-w-Wall生成匯編代碼后輸出匯編代碼,并停不生成任何警告信息生成所有級別的警告信息9GCC編譯器使用簡介GCC典型用法假設(shè)C語言源程序文件名為

o.c假設(shè)

o.c需要包含位于/home/include文件夾下的第假設(shè)

o.c需要頭文件位于/home/lib文件夾下的第 庫

lib

X.so假設(shè)希望編譯之后生成的文件名為

o編譯命令如下gcc

-I/home/include

-L/home/include

-lXo.c

-oo1011大綱Linux下程序開發(fā)一般流程GCC編譯器使用簡介make簡介GDB調(diào)試器使用簡介如何在Linux下運(yùn)行程序make簡介make是一個(gè)工具它的作用是轉(zhuǎn)化文件轉(zhuǎn)化的目標(biāo)被稱為為了得到目標(biāo)文件,它檢查依賴關(guān)系它可以通過調(diào)用外部工具來完成從被依賴的文件向目標(biāo)文件的轉(zhuǎn)化調(diào)用合適的程序?qū)⒁唬ㄏ盗校┪募D(zhuǎn)化成目標(biāo)文件調(diào)用gcc將*.c文件編譯轉(zhuǎn)化成可執(zhí)行文件12make簡介make是一個(gè)工具它的依賴關(guān)系檢查系統(tǒng)非常簡單通過比對依賴文件與目標(biāo)文件的時(shí)間來判斷通常被用來編譯源程序,生成可執(zhí)行文件當(dāng)然,你如果愿意,它也可以被用在其他地方例如:在兩個(gè)文件夾之間自動同步文件通過makefile規(guī)則文件執(zhí)行自動化工作主要解決兩個(gè)問題大量代碼的關(guān)系 、減少重復(fù)編譯的時(shí)間13make簡介makefile規(guī)則文件,主要目標(biāo)就是確認(rèn)文件之間的相互依賴關(guān)系基本格式:

prerequisites

...command...即目標(biāo)文件prerequisites是為了生成

所需的依賴文件command是需要執(zhí)行

令,每一行都必須以tab開頭規(guī)則:依賴文件比目標(biāo)新,則執(zhí)行commands14make簡介makefile范例15make簡介make

令格式make

[-f

file]

[options]

[

s]make默認(rèn)在當(dāng)前

下按照GNUmakefile、makefile、Makefile順序?qū)ふ襪akefile文件,使用-f參數(shù)可以指定makefile文件名options可以控制make的一些細(xì)節(jié)動作,這里不做介紹

s不指定時(shí),make命令在makefile中尋找第一個(gè)目標(biāo);指定s時(shí),尋找指定目標(biāo)16make簡介稍復(fù)雜一些的例子main.c調(diào)用printf1.c中的printf1函數(shù),同時(shí)需要main.h中的PI宏定義printf1.hmain.cprintf1.cmain.hmake簡介稍復(fù)雜一些的例子實(shí)際編譯時(shí),如果main.c或者printf1.c中的任何一個(gè)沒有改動,則其對應(yīng)的.o文件不需要重新編譯make介紹假想目標(biāo)假想目標(biāo)并不是一個(gè)真實(shí)的文件,例如前面出現(xiàn)過的“clean”除非是假想目標(biāo)在makefile中做為第一個(gè)目標(biāo)出現(xiàn),否則通常需要在make命令后面指定目標(biāo)名才能被執(zhí)行all:

exec1

exec2clean:rm

*.oexec1exec219make介紹makefile進(jìn)階隱晦規(guī)則make會自動推導(dǎo)一些規(guī)則,例如*.o目標(biāo),make會自動以*.c做為它的依賴文件并調(diào)用cc編譯變量類似于C語言中的宏,可以大幅提高makefile文件的可重用性幾個(gè)常用的系統(tǒng)變量$@代表目標(biāo)文件;$^代表不重復(fù)的依賴文件;$<代表第一個(gè)依賴文件OBJS

=

main.o

printf1.omain:

$(OBJS)2021大綱Linux下程序開發(fā)一般流程GCC編譯器使用簡介make簡介GDB調(diào)試器使用簡介如何在Linux下運(yùn)行程序22GDB調(diào)試器使用簡介GDB是GNU工具集中一個(gè)功能強(qiáng)大的調(diào)試器,該程序是一個(gè)交互式工具,工作在字符模式。使用GCC編譯程序時(shí)需要加入-g選項(xiàng),確保生成的可執(zhí)行程序中帶有調(diào)試信息GDB調(diào)試器使用簡介GDB可完成如下調(diào)試任務(wù):1、設(shè)置斷點(diǎn)2、監(jiān)視程序變量的值3、程序的單步執(zhí)行4、顯示/修改變量的值5、顯示/修改寄存器6、查看程序的堆棧情況7、

調(diào)試23GDB調(diào)試器使用簡介下面是一個(gè)簡單的C程序,用來說明gcc、gdb的使用方法。先對程序進(jìn)行編譯:24GDB調(diào)試器使用簡介進(jìn)入程序調(diào)試狀態(tài)對程序進(jìn)行調(diào)試:25GDB調(diào)試器使用簡介調(diào)試時(shí)常用令及效果:262728大綱Linux下程序開發(fā)一般流程GCC編譯器使用簡介make簡介GDB調(diào)試器使用簡介如何在Linux下運(yùn)行程序如何在Linux下運(yùn)行程序首先檢查文件權(quán)限是否可以執(zhí)行通過“l(fā)s

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論