版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同 確認(rèn)書 備忘錄
- 醫(yī)生幫扶計(jì)劃和幫扶措施
- 深圳大學(xué)《刑法學(xué)(2)》2021-2022學(xué)年期末試卷
- 政府會議汽車包車合同
- 商業(yè)樓宇衛(wèi)生管理保潔員合同
- 商業(yè)用地土地使用權(quán)轉(zhuǎn)讓合同
- 通訊設(shè)施租賃合同示范文本
- 美術(shù)館買賣合同范本
- 塑膠通訊設(shè)備維修合同
- 環(huán)保設(shè)備銷售經(jīng)理聘用合同
- 建筑幕墻工程(鋁板、玻璃、石材)監(jiān)理實(shí)施細(xì)則(全面版)
- 小學(xué)數(shù)學(xué)與思政融合課教學(xué)設(shè)計(jì)
- 體育公園運(yùn)營管理方案
- 休閑生態(tài)農(nóng)業(yè)觀光園建設(shè)項(xiàng)目財(cái)務(wù)分析及效益評價(jià)
- 江西省南昌市民德學(xué)校2023-2024學(xué)年八年級上學(xué)期期中數(shù)學(xué)試題
- 國際金融(英文版)智慧樹知到期末考試答案2024年
- 2024年《藥物臨床試驗(yàn)質(zhì)量管理規(guī)范》(GCP)網(wǎng)絡(luò)培訓(xùn)題庫
- 遼寧省名校聯(lián)盟2024屆高三下學(xué)期3月份聯(lián)合考試化學(xué)
- 2023年度學(xué)校食堂每月食品安全調(diào)度會議紀(jì)要
- 建筑門窗、幕墻安裝工人安全技術(shù)操作規(guī)程
- 糖尿病高滲性昏迷護(hù)理查房
評論
0/150
提交評論