資源描述:
《滕健偉--1315212033--嵌入式實驗五實驗報告》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、嵌入式原理與應(yīng)用實驗實驗五gcc編譯程序與gdb調(diào)試程序?qū)W號1315212033姓名滕健偉班級13電子二班華僑?;曇電3工程系實驗五gcc編譯程序與gdb調(diào)試程序一、實驗?zāi)康?.通過幾種不同需求的程序,掌握使用gcc的各種選項編譯程序。2.通過調(diào)試一個有問題的程序,使讀者進一步熟練使用vi操作,而且熟練掌握gcc編譯命令及gdb的調(diào)試命令,通過對有問題程序的跟蹤調(diào)試,進一步提高發(fā)現(xiàn)問題和解決問題的能力。二、實驗內(nèi)容:1、學習使用gcc的各種選項編譯程序。(1)編譯和運行這段程序hell()?c:#includeintmain(void){printf(“Helloworld
2、!");return0;}[roogcc]#viheIIo.c[roogcc]#gcche1loaC-oheIIo[root'^wsvgcc]#./heIIoheIIo\c)rId![roogcc]#
3、(2)創(chuàng)建靜態(tài)庫,并運行程序/*powtest.c*/#include#includeintinain(intargc,char*argv[]){unsignedintx,y;unsignedlonglongres;if((argc<3)
4、
5、(sscanf(argv[lj,"%u",&x)!=1)I
6、(sscanf(argv[2],"%u",&y))
7、!=1){printf("Usage:powbaseexponent〃);exit(1);}res=unsgn_pow(x,y);printfCz%u"%u=%urT,x,y,res);exit(0);/*unsgn_pow.c:庫程序*/unsignedlonglongunsgn_pow(unsignedintx,unsignedinty)unsignedlonglongres=1;if(v==0){res=1;}elseif(y==1){res=x;}else{res二x*unsgn_pow(x,y-1);}returnres;}創(chuàng)建靜態(tài)庫,然后編譯主程序,并運行結(jié)果。[roogc
8、c]#[roogcc]#gcc一cunsgn_pow.carrcsv1ibpow.aunsgn_pov.oa-unsgn_pow,o[【oo@\\vgcc]#[root'^wvgcc]#2,10=1024gcc-opontestpow^test,c-L.-Ipow./pou^test210
9、[mogcc]#[roogcc]#[roogcc]#[root(^uwgcc]#(1)針對(2)的程序,創(chuàng)建動態(tài)庫,然后編譯主程序,并運行結(jié)果。對比兩者的區(qū)別。gcc-fPIC-Wll-cunsgn^pow.cgcc-shared-o1ibpow.sounsgn_pow.ogcc-opo^tes
10、tpow^test.c-L.Ipow[root^wwgcc]#1she1IoIibpow.apoy_testunsgn_pow.cheIIo.cIibpow.sopou^test.cunsgn_pow.o[root^Xwwgcc]#gcc-opou^testpov_test.c-L.[roogcc]#cpIibpow.so/Iib[root@vwivgccH./pouLtest2102,10=1024
11、[rootgcc]#(2)對下面程序進行優(yōu)化編譯,對比優(yōu)化前后的結(jié)果,并解釋說明結(jié)果。#includeintmain(void){doublecounter;doubl
12、eresult;doubletemp;for(counter=0;counter<2000.0*2000.0*2000.0/20.0+2020;counter+二(5-1)/4){temp=counter/1979;result二counter;}printf(^Resultis%lf”,result);return0;}[root^Xwwgcc]#vi4.c[root<^\wgcc]#gcc4.c-o4[root^wwgcc]#tirre./4Resultis400002019.000000IreaIOrrtl.597s人user0n4.550ssysOnt)>000s[root
13、^wuvgcc]#gcc-O4.c-o4[rool^swvgcc]#Iim??/4Resultis400002019.000000rea10ml.230suser0ml.180ssysOnt).000s
14、[root^wgcc]#
15、對程序進行優(yōu)化z后,可以明顯看出程序運行的時間大大縮短了,提高了程序運行的效率。2、用gdb調(diào)試程序的bug(1)使用vi編輯器,將以下代碼輸入到名為greet,c的文件中。此代碼