




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、linux下c語(yǔ)言程序的編譯調(diào)試實(shí)驗(yàn)學(xué) 院:中子信息工程學(xué)院專業(yè):通信工程姓名:王斯宇學(xué)號(hào):11211116指導(dǎo)老師:周圍老師完成時(shí)間: 2013年6月3日一、實(shí)驗(yàn)?zāi)康?. 熟悉 linux 下 c 語(yǔ)言編譯調(diào)試環(huán)境。2. 學(xué)會(huì)使用 gcc 編譯 c 程序。3. 學(xué)會(huì)使用 gdb 調(diào)試 c 程序。二、實(shí)驗(yàn)內(nèi)容1. 在 linux 下,編寫程序factorize.c, 功能如下:輸入一個(gè) int 型整數(shù),輸出其因式分解結(jié)果。2. 編譯運(yùn)行,生成可執(zhí)行文件。3. 用 gdb 調(diào)試該程序,找到錯(cuò)誤并修改。三、實(shí)驗(yàn)軟件環(huán)境gccgcc (gnu compiler collection , gnu 編譯
2、器集合)是一套由 gnu 工程開發(fā)的支持多種編程語(yǔ)言的編譯器。 gcc 是自由軟件發(fā)展過(guò)程中的著名例子,由自由軟件基金會(huì)以 gpl 協(xié)議發(fā)布。 gcc 是大多數(shù)類unix 操作系統(tǒng) (如 linux 、bsd 、 mac os x 等)的標(biāo)準(zhǔn)的編譯器, gcc 同樣適用于微軟的 windows 。gcc 支持多種計(jì)算機(jī)體系芯片, 如 x86 、 arm , 并已移植到其他多種硬件平臺(tái)。gcc 原名為 gnu c 編譯器( gnu c compiler ) ,因?yàn)樗局荒芴幚韈 語(yǔ)言。 gcc 很快地?cái)U(kuò)展,并支持處理c+ 。后來(lái)又?jǐn)U展能夠支持更多編程語(yǔ)言,如 fortran 、 pascal
3、、 objective-c 、 java 、 ada 、 go 等。gdbgdb 是 gnu 開源組織發(fā)布的一個(gè)強(qiáng)大的 unix 下的程序調(diào)試工具。 或許,各位比較喜歡那種圖形界面方式的,像vc 、 bcb 等 ide 的調(diào)試,但如果你是在 unix 平臺(tái)下做軟件,你會(huì)發(fā)現(xiàn)gdb 這個(gè)調(diào)試工具有比 vc 、 bcb 的圖形化調(diào)試器更強(qiáng)大的功能。所謂“寸有所長(zhǎng),尺有所短”就是這個(gè)道理。一般來(lái)說(shuō), gdb 主要幫助你完成下面四個(gè)方面的功能:1 、啟動(dòng)你的程序,可以按照你的自定義的要求隨心所欲的運(yùn)行程序。2 、可讓被調(diào)試的程序在你所指定的調(diào)置的斷點(diǎn)處停住。 (斷點(diǎn)可以是條件表達(dá)式) 。3 、當(dāng)程序被
4、停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。4、動(dòng)態(tài)的改變你程序的執(zhí)行環(huán)境。四、實(shí)驗(yàn)步驟:1. 程序編輯在桌面環(huán)境下新建一個(gè)文件,打開文件輸入代碼,保存為 factorize.c ,然后將其復(fù)制到在/home/ 文檔目錄下。附:原程序代碼#include <stdio.h>int main(int argc, char *argv)int n,i;printf("please enter an integer:");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i+)w
5、hile(n!=i)if(n%i=0)printf("%d*",i);n=n-i;elsebreak;printf("%dn",n);return 0;2. 編譯并運(yùn)行用 gcc 命令編譯程序通過(guò)后運(yùn)行,輸入18 ,輸出結(jié)果明顯是錯(cuò)誤的3. 調(diào)試進(jìn)入 gdb 環(huán)境,使用 gdb 命令,幫助時(shí)使用 help在 for 循環(huán)處(第9 行)設(shè)置斷點(diǎn),使用命令“在 printf 函數(shù)處(第 15 行)設(shè)置斷點(diǎn),使用命令“ b 15 ”。查看斷點(diǎn)設(shè)置情況,使用命令“ info b ” 。運(yùn)行代碼,使用命令“ r” 。單步運(yùn)行代碼,使用命令“ n” 。查看暫停點(diǎn)變量
6、值,使用命令“ p i ”或“ p n ” 。繼續(xù)單步運(yùn)行代碼數(shù)次,并使用命令查看,判斷i 或 n 的值。繼續(xù)程序的運(yùn)行,使用命令“ c” 。從斷點(diǎn)數(shù)據(jù)可以得知:程序一直處于while 循環(huán)之中, i 的數(shù)值一直為 2 ,所以變量 n 的數(shù)值出現(xiàn)了問(wèn)題, 導(dǎo)致最終輸出結(jié)果只有2 。 仔細(xì)檢查代碼后發(fā)現(xiàn)錯(cuò)誤,原程序第 16 行“ n=n-i ”應(yīng)改為“ n=n/i ” 。4. 再次編譯并運(yùn)行這次輸出“ 18=2*3*3 ”正確,程序編寫成功附:修改后的程序代碼#include <stdio.h>int main(int argc, char *argv)int n,i;printf(
7、"please enter an integer:");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i+)while(n!=i)if(n%i=0)printf("%d*",i);n=n-i;elsebreak;printf("%dn",n);return 0;同時(shí),可以在文件系統(tǒng)中看到,程序代碼所在的文件夾生成了可執(zhí)行文件factorize ,這也是 gcc 成功編譯并能下一步運(yùn)行的體現(xiàn)。五、實(shí)驗(yàn)總結(jié)通過(guò)本次實(shí)驗(yàn),我了解了 linux 環(huán)
8、境下進(jìn)行c 語(yǔ)言編程的基本方法,再一次感受到了 ubuntu 系統(tǒng)的簡(jiǎn)便和快捷。與 windows 編程需要 ide 開發(fā)環(huán)境不同, linux 系統(tǒng)本身已經(jīng)良好的集成了進(jìn)行 c 語(yǔ)言的基本環(huán)境,所以只需在終端輸入幾個(gè)簡(jiǎn)單的命令,程序即可編譯并運(yùn)行了。 只是對(duì)于習(xí)慣了圖形界面的我們來(lái)說(shuō), 剛上手時(shí)的確會(huì)感到這種方法的不便之處,尤其是對(duì)于初學(xué)者來(lái)說(shuō),不知道任何gcc 或者 gdb 的命令就根本無(wú)從下手, 而這一切只能靠記憶。 但是不得不承認(rèn), 這種方式的效率是最高的,對(duì)系統(tǒng)資源的占用是最少的,可以說(shuō)是最純粹的編程,完全不會(huì)出現(xiàn)visualstudio 那樣又卡又慢或者意外崩潰的情況。綜上所述, linux 系統(tǒng)環(huán)境確實(shí)更加適合c 程序開
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理個(gè)案:上消化道出血
- 護(hù)理禮儀與護(hù)士服飾
- 養(yǎng)發(fā)行業(yè)的優(yōu)勢(shì)與前景
- 焦作大學(xué)《數(shù)學(xué)教學(xué)技能綜合訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 企業(yè)競(jìng)爭(zhēng)策略研究報(bào)告
- 信陽(yáng)農(nóng)林學(xué)院《標(biāo)志設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 漯河食品職業(yè)學(xué)院《統(tǒng)計(jì)學(xué)原理與實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連民族大學(xué)《OS開發(fā)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津中德應(yīng)用技術(shù)大學(xué)《節(jié)能技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭州職業(yè)技術(shù)學(xué)院《中醫(yī)文獻(xiàn)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 331金屬晶體課件高二化學(xué)人教版選擇性必修2
- 礦山礦石采購(gòu)合同模板
- 臨床護(hù)理實(shí)踐指南2024版
- 2024年浪潮數(shù)字企業(yè)技術(shù)有限公司社會(huì)招聘(105人)筆試核心備考題庫(kù)及答案解析
- 第47屆世界技能大賽江蘇省選拔賽競(jìng)賽技術(shù)文件-混凝土建筑項(xiàng)目
- 白蟻防治施工方案
- 2024年新人教版四年級(jí)數(shù)學(xué)下冊(cè)《第6單元第2課時(shí) 小數(shù)加減法》教學(xué)課件
- 國(guó)開2024年《數(shù)據(jù)庫(kù)運(yùn)維》形考1-3
- 勞動(dòng)合同(模版)4篇
- 少兒美術(shù)課件國(guó)家寶藏系列《鴟吻》
- 鹽城射陽(yáng)農(nóng)村商業(yè)銀行招聘真題
評(píng)論
0/150
提交評(píng)論