linux下操作系統(tǒng)的早期就被廣泛使用通用編程語言它最早是由實(shí)驗(yàn)室_第1頁
linux下操作系統(tǒng)的早期就被廣泛使用通用編程語言它最早是由實(shí)驗(yàn)室_第2頁
linux下操作系統(tǒng)的早期就被廣泛使用通用編程語言它最早是由實(shí)驗(yàn)室_第3頁
linux下操作系統(tǒng)的早期就被廣泛使用通用編程語言它最早是由實(shí)驗(yàn)室_第4頁
linux下操作系統(tǒng)的早期就被廣泛使用通用編程語言它最早是由實(shí)驗(yàn)室_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Linux下C編程:C是一種在UNIX操作系統(tǒng)的早期就被廣泛使用的通用編程語言。它最早是由貝爾的DennisRitchie為了UNIX的輔助開發(fā)而寫的,開始時(shí)UNIX是用匯編語言和一種叫B起,C就成為世界上使用最廣泛計(jì)算機(jī)語言。C且它的語法和函數(shù)庫在不同的平臺(tái)上都是統(tǒng)一的,這個(gè)特性對(duì)開發(fā)者來說很有。CC是所有版本的UNIXC在過去的二十年中有了很大的發(fā)展。在80年代末期 (AmericanNationalStandardsInstitute)發(fā)布了一個(gè)被稱為ANSIC的C語言標(biāo)準(zhǔn)。這更加保證了將來在不同平臺(tái)上的C的一致性。在80年代還出現(xiàn)了一種C的面向?qū)ο蟮臄U(kuò)展稱為C++。C++將在另一篇文章"C++編程"中描述。Linux上可用的C編譯器是GNUC編譯器,它建立在自由軟件的編程證的基礎(chǔ)上,因此可以自由發(fā)布。你能在Linux的光盤上找到它。GNUC隨SlackwareLinux的GNUC編譯器(GCC)是一個(gè)全功能的ANSIC兼容編譯器。如果你熟悉其他操作系統(tǒng)或硬件平臺(tái)上的一種C編譯器,你將能很快地掌握GCC。本節(jié)將介紹如何使用GCC和一些GCC編譯器最常用的選項(xiàng)。使用GCCgccgcc[options]GCC有超過100個(gè)的編譯選項(xiàng)可用。這些選項(xiàng)中的許多你可能都不會(huì)用到,但一些主要的選項(xiàng)將GCC并且就象大多數(shù)Linux命令一樣你不能在一個(gè)單獨(dú)的連字符后跟一組選項(xiàng)。例如,下面的兩個(gè)命令是不同的:gccpggccpgGCCtest.cprof命令建立剖析(profile)信息并且把調(diào)試信息加入到可執(zhí)行的文件里。第二條命令只告訴GCCgprof當(dāng)你不用任何選項(xiàng)編譯一個(gè)程序時(shí)GCC將會(huì)建立(假定編譯成功)a.out,下面令將在當(dāng)前下產(chǎn)生一個(gè)叫a.out的文件:gcc你能用oa.out,count.cC程序編譯為名叫count的可執(zhí)行文件,你將輸入下面令gccocounto選項(xiàng)時(shí)oGCCcGCC僅把源代碼編譯為目標(biāo)代碼而跳過匯編和連接的步驟。這個(gè)選項(xiàng)使用的非常頻繁因?yàn)樗沟镁幾g多個(gè)C程序時(shí)速度更快并且更易于管理。缺省時(shí)GCC建立的目標(biāo)代碼文件有一個(gè).o的擴(kuò)展名。S編譯選項(xiàng)告訴GCC在為C代碼產(chǎn)生了匯編語言文件后停止編譯。GCC產(chǎn)生的匯編語言文件的缺省擴(kuò)展名是.s。E選項(xiàng)指示編譯器僅對(duì)輸入文件進(jìn)行預(yù)處理。當(dāng)這個(gè)選項(xiàng)被使用時(shí)預(yù)處理器的輸出被送GCCC代碼時(shí)它會(huì)試著用最少的時(shí)間完成編譯并且使編譯后的代碼易于調(diào)試。易于調(diào)試意味著編譯后的代碼與源代碼有同樣的執(zhí)行次序,編譯后的代碼沒有經(jīng)過優(yōu)化。有很多選項(xiàng)可用于告訴GCC在耗費(fèi)編譯時(shí)間和犧牲易調(diào)試性的基礎(chǔ)上產(chǎn)生更小更快的可執(zhí)行文件。這些選項(xiàng)中最典型的是O和O2選項(xiàng)。O選項(xiàng)告訴GCC對(duì)源代碼進(jìn)行基本優(yōu)化。這些優(yōu)化在大多數(shù)情況下都會(huì)使程序執(zhí)行的更快。O2選項(xiàng)告訴GCC產(chǎn)生盡可能小和盡可能快的代碼。O2選項(xiàng)將使編譯的速度比使用O時(shí)慢。但通常產(chǎn)生的代除了O和O2優(yōu)化選項(xiàng)外,還有一些低級(jí)選項(xiàng)用于產(chǎn)生更快的代碼。這些選項(xiàng)非常的特殊,而且最好請(qǐng)參考GCC的指南頁,在命令行上鍵入mangcc。GCCg和pgg選項(xiàng)告訴GCCGNUGCC他C編譯器里沒有的特性,在GCC里你能使g和O(產(chǎn)生優(yōu)化代碼)聯(lián)用。這一點(diǎn)非常有用因?yàn)槟隳茉谂c在優(yōu)化時(shí)被GCC作了改動(dòng)。關(guān)于調(diào)試C程序的信息請(qǐng)看下一節(jié)"用gdb調(diào)試C程序"。pg選項(xiàng)告訴GCC在你的程序里加入額外的代碼執(zhí)行時(shí)產(chǎn)生gprof用的剖析信息以顯示你的程序的耗時(shí)情況。關(guān)于gprof的信息請(qǐng)參考"gprof"一節(jié)。用GDB調(diào)試GCC用Linux包含了一個(gè)叫g(shù)db的GNU調(diào)試程序。gdb是一個(gè)用來調(diào)試C和C++程序的強(qiáng)力調(diào)試器。它使你能在程序運(yùn)行時(shí)觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。以下是gdb所提供的一些功能:在命令行上鍵入gdb并按回車鍵就可以運(yùn)行g(shù)db了如果一切正常的話gdb將被啟動(dòng)并且你將在屏幕GDBissoftwareandyouare etodistributecopiesofitundercertainconditions;type"showcopying"toseetheconditions.Thereisabsolu ynowarrantyforGDB;type"showwarranty"fordetails.gdb后,gdb當(dāng)你用這種方式運(yùn)行g(shù)db,你能直接指定想要調(diào)試的程序。這將告訴gdb裝入名為fname的可執(zhí)行文件。你也可以用gdb去檢查一個(gè)因程序異常終止而產(chǎn)生的core文件或者與一個(gè)正在運(yùn)行的程序相連。你可以參考gdb指南頁或在命令行上鍵入gdbh得到一個(gè)有關(guān)這些選項(xiàng)的說明的簡單列表。為調(diào)試編譯代碼(CompilingCodeforgdb正常工作類型和在可執(zhí)行文件里的地址映射以及源代碼的行號(hào)。gdb利用這些信息使源代碼和機(jī)器碼相關(guān)聯(lián)。ggdb容的復(fù)雜命令27.1gdbgdbgdb的Linux下C++emacs:沒有XWindow的前提下,功能比較強(qiáng)大的一個(gè)編輯器,比較難用。gedit:XWindow下比較好的一個(gè)編輯器。XWindow下對(duì)gdb的圖形化封裝,我沒用過EclipseCDTC++集成開發(fā)環(huán)境了。Kylix:沒用過,據(jù)說也能用來開發(fā)C++程序。KDevelope:比較好用的集成開發(fā)環(huán)境,基于KDEKDevelope,之前是用geditgccEclipseCDT編編 LinuxC.C,.cc,.cpp。建議與Windows平臺(tái)下統(tǒng)一用.cpp作為擴(kuò)展名。FedoraCore5G++4.1.0;2006年,應(yīng)該符合ISOC2003標(biāo)準(zhǔn)。編譯命令:g++**.cppLinux置GCC環(huán)境(含build-essentialg++,libc6-dev,linux-libc-dev,libstdc+可以在新立得里面搜索build- 或輸入下面命令GTK環(huán)境(含Glade) monglade-doc圖形界面設(shè)計(jì)等。sudoapt-getinstalldevhelp monglade-用aptitude重新設(shè)置。GTKmm安裝APIAPI文檔,及查看器DevHelp(因libdevhelp的問題,Anjuta的“API幫助”插件不能 在編程的過程中有時(shí)會(huì)記不得某個(gè)函數(shù)的用法,通常這時(shí)查man手冊(cè)是比較快的,所以把這個(gè)manpages-dev軟件包安裝上。想要看某個(gè)函數(shù)的用法就man它。執(zhí)行安裝命令:代碼mank和manf~$mandb-~$man安裝GTK/QtGUIKDevelop:比較全面且較大的一個(gè)IDE,囊括GTKmm/QT及script(python/ruby...)語言等,類windowsVS,缺點(diǎn)是龐大,優(yōu)點(diǎn)是全面sudoapt-getinstallkdevelopAnjuta:結(jié)合GTK+/GTKmm/python/java...的IDE工具,功能較全面且精巧,但不支持QT,主要GCC/GTK+/GTKmm/Glade(GUI)sudoapt-getinstallautogenautomakeindentintltoollibtool(解決編譯環(huán)境問題Anjuta設(shè)置說明:點(diǎn)擊菜單“設(shè)置”→“Preferences”選擇“SymbolBrowser”按下“Updateglobaletags”按鈕即可。在這個(gè)界面,你還可以添加自己的庫的TAG,這樣你自己的類庫就能在編碼提示中出現(xiàn)了。編輯器選擇“ScintillaEditor”GtkSourceviewEditor,則在preferredplugins里面remove,然后重啟anjuta選擇"ScintillaEditor"。intmain(){printf("oUbuntu!\n");return0;}代碼$gcctestc.co$ovoido(GtkWidget*widget,gpointer{g_print("o}{}{}intmain(intargc,char*argv[]{GtkWidget*window;GtkWidget*button;gtk_container_set_border_width(GTK_CONTAINER(window),10);button=gtk_button_new_with_label("ogtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(o),NULL);gtk_signal_connect_object(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(gtk_widge

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論