版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一部分 Li nux G編程框架及編程基礎(chǔ)第1章Linu軟件開發(fā)概述1.1 關(guān)于 LinuxLinuxF 199年誕生于芬蘭。大學(xué)生Li nus Torvald由于沒有足夠的錢購(gòu)買昂貴的商用操作系統(tǒng),于是自己編寫了一個(gè)小的操作系統(tǒng)內(nèi)核,這就是LinuX勺前身。Linus Torval將S操作系統(tǒng)的源代碼在In ter n吐公布,受到了計(jì)算機(jī)愛好者的熱烈歡迎。各種各樣的計(jì)算機(jī)高手不 斷地為它添加新的特性,并不斷地提高它的穩(wěn)定性。1994年, Linux 1.正式發(fā)布?,F(xiàn)在,Lin ux已經(jīng)成為一個(gè)功能強(qiáng)勁的32位的操作系統(tǒng)。嚴(yán)格地說,Linux只是一個(gè)操作系統(tǒng)內(nèi)核。比較正式的稱呼是GNU操作系
2、統(tǒng),它使用Linux內(nèi)核。GNU的意思是 GNU s notUni*GNU不是Unix 種詼諧的說法,意指GNU是一種類Unix的操作系統(tǒng)。GNU計(jì)劃是由自由軟件的創(chuàng)始人Stallma在 20世紀(jì)80年代提岀的一個(gè)龐大的項(xiàng)目,目的是提供一個(gè)免費(fèi)的類Unix的操作系統(tǒng)以及在上面運(yùn)行的應(yīng)用程序。GNU項(xiàng)目在初期進(jìn)展并不順利,特別是操作系統(tǒng)內(nèi)核方面。Lin u適時(shí)而岀,由于它岀色的性能,使它成為GNU項(xiàng)目的操作系統(tǒng)的內(nèi)核。從此以后,GNU項(xiàng)目進(jìn)展非常迅速:全世界的計(jì)算機(jī)高手已經(jīng)為它貢獻(xiàn)了非常多的應(yīng)用程序和源代碼。Linux是遵從GPL協(xié)議的軟件,也就是說,只要遵從GPL協(xié)議,就可以免費(fèi)得到它的軟件和
3、源代碼,并對(duì)它進(jìn)行自由地修改。然而,對(duì)一般用戶來說,從In terne或者其他途徑獲得這些源代碼,然后對(duì)它們進(jìn)行編譯和安裝是技術(shù)難度很高的工作。一些應(yīng)用程序的安裝也都非 常復(fù)雜。因而,有一些公司如Red Hat VA等開始介入 Linux勺業(yè)務(wù)。它們將 Linux操作系統(tǒng)以及一些重要的應(yīng)用程序打包,并提供較方便的安裝界面。同時(shí),還提供一些有償?shù)纳虡I(yè)服務(wù) 如技術(shù)支持等。這些公司所提供的產(chǎn)品一般稱為L(zhǎng)inux的發(fā)布版本。目前比較著名的Linux發(fā)布版本有以下幾種:Red Ha 最著名的Linu服務(wù)提供商,Inte、Del等大公司都對(duì)其有較大投資,該公司 前不久收購(gòu)了開放源代碼工具供應(yīng)商Cyg nu
4、公司。SlackWa 歷史比較悠久,有一定的用戶基礎(chǔ)。SUS在歐洲知名度較大。TurboLinux- 在亞洲,特別是日本用戶較多。該公司在中國(guó)推岀了TurboLinux 4、4.02和 6.0的中文版,漢化做得很岀色。Debai完全由計(jì)算機(jī)愛好者和Lin ux社區(qū)的計(jì)算機(jī)高手維護(hù)的Linux發(fā)布版本。Linux進(jìn)入中國(guó)后,在我國(guó)計(jì)算機(jī)界引起了強(qiáng)烈的反響,最近兩年,也岀現(xiàn)了許多漢化的Lin ux發(fā)布版本,影響較大的有以下幾種:XteamL in 北京沖浪平臺(tái)公司推岀的產(chǎn)品,中國(guó)第一套漢化的Lin ux發(fā)布版本。第1章Lin u軟件開發(fā)概述使使用第一部分LinuxBluePoi 199年底正式推岀
5、的產(chǎn)品,內(nèi)核漢化技術(shù)頗受矚目。紅旗Linu 中國(guó)科學(xué)院軟件研究所和北大方正推岀的LinuX發(fā)布版本。從本質(zhì)上來說,上面所有發(fā)布版本使用的都是同樣的內(nèi)核(或者版本略有不同),因而,它們?cè)谑褂蒙匣旧蠜]有什么區(qū)別。但它們的安裝界面不一樣,所包含的應(yīng)用程序也有所不同。Lin ux之所以大受歡迎,不僅僅因?yàn)樗敲赓M(fèi)的,而且還有以下原因:1)Linu是一個(gè)真正的搶占式多任務(wù)、多線程、多用戶的操作系統(tǒng)。2)Linu性能非常穩(wěn)定,功能強(qiáng)勁,可以與最新的商用操作系統(tǒng)媲美。3)Linux有非常廣泛的平臺(tái)適應(yīng)性。它在基于Inte公司的x86也包括AMD Cyrix IDT)的計(jì)算機(jī)、基于 Alpha勺計(jì)算機(jī),以及
6、蘋果、Sun SG等公司的計(jì)算機(jī)上都有相應(yīng)的發(fā)布版本,甚至在AS/40這樣的機(jī)器上都能找到相應(yīng)的版本。Linux還可以在許多 PDA和掌上電腦以及嵌入式設(shè)備上運(yùn)行。4)已有非常多的應(yīng)用程序可以在Linuxh運(yùn)行,大多數(shù)為 SCO Un開發(fā)的應(yīng)用程序都能在Linux上運(yùn)行(借助于iBCS軟件包),甚至還比在 SCO Un上運(yùn)行速度更快。借助 Dosemu 可以運(yùn)行許多 DOS應(yīng)用程序,而借助 Wab或 Wine還可以運(yùn)行許多為 Window設(shè)計(jì)的軟件。5)Lin ux是公開源代碼的,也就是說,不用擔(dān)心某公司會(huì)在系統(tǒng)中留下后門(軟件開發(fā)商或程序員預(yù)留的,可以繞開正常安全機(jī)制進(jìn)入系統(tǒng)的入口)。6)只
7、要遵從GPL協(xié)議,就可以自由地對(duì)Linux進(jìn)行修改和剪裁。當(dāng)然,Lin ux的優(yōu)點(diǎn)決不止于此。對(duì)計(jì)算機(jī)專業(yè)人員來說,Lin ux及其相關(guān)應(yīng)用程序也是學(xué)習(xí)編程的絕好材料,因?yàn)檫@些軟件都提供了完整的源代碼。Lin ux勺岀現(xiàn)為我國(guó)軟件產(chǎn)業(yè)趕超世界先進(jìn)水平提供了極好的機(jī)遇,也為我國(guó)軟件產(chǎn)業(yè)反 對(duì)微軟的壟斷提供了有力的武器。1.2關(guān)于Linu的桌面環(huán)境目前使用Lin ux主要在于服務(wù)器端。在In ter net有很多服務(wù)器都在使用Linux但是,一個(gè)操作系統(tǒng)要想得到普及,并占據(jù)一定的市場(chǎng)份額,必須要使非計(jì)算機(jī)專業(yè)人士都可以輕松 掌握這種系統(tǒng)。而Linux乍為一種類 Unix操作系統(tǒng),對(duì)它的操作一般都是
8、通過復(fù)雜的She命 令進(jìn)行的。因而,應(yīng)該有一種簡(jiǎn)便易學(xué)的圖形用戶接口(Graphics User InterfaGU),使用戶使用鼠標(biāo)就可以完成大多數(shù)工作。在Linux中 GUI由以下幾個(gè)部分組成:?窗口系統(tǒng)一組織顯示屏上的圖形輸岀并執(zhí)行基本的文本和繪圖功能。?窗口管理器 一負(fù)責(zé)對(duì)窗口的操作(比如最小化、最大化、關(guān)閉按鈕的形狀,窗口邊框外觀等)以及輸入焦點(diǎn)的管理。? 工具包一帶有明確定義的編程界面的常規(guī)庫(kù)。?風(fēng)格一指定應(yīng)用程序的用戶界面外觀和行為。在Linux發(fā)展的初期,眾多的計(jì)算機(jī)專家為它貢獻(xiàn)了多種圖形用戶接口,如FVWM95AfterSte等。這些接口模仿了Windows 95Macint
9、osh NestStepAmiga Unix CD等桌面環(huán)境。這些 GUI在一定程度上來說只是其他圖形接口的仿制品,不能提供優(yōu)秀的操作系統(tǒng)所 需要的特性。其后,自由軟件社區(qū)的一批計(jì)算機(jī)專家開始了KDE項(xiàng)目(K Desktop EnvironmentK桌面環(huán)境),目的是提供一個(gè)開放源代碼的圖形用戶接口和開發(fā)環(huán)境。該項(xiàng)目取得了極大的下載成功,KDE成為許多Linux發(fā)布版本的首選桌面環(huán)境。GNU/Li nu項(xiàng)目因此而得到蓬勃發(fā)展。但是,KDE是基于Troll Tech nolo公司的Qt庫(kù)的。Qt庫(kù)是一個(gè)跨平臺(tái)的C+類庫(kù),可以用于多種Unix Linux Win3等操作系統(tǒng)。 Qt并不是遵從 GP
10、L或 LGPL協(xié)議的軟件包。它的許可條 件是:如果使用它的免費(fèi)版本開發(fā)應(yīng)用程序或程序庫(kù),則所開發(fā)的軟件必須開放源代碼;如 果使用它的商用版本,則可以用以開發(fā)私有的商用軟件。另外,Qt庫(kù)是屬于Trol公司的產(chǎn)品,一旦Troll公司破產(chǎn),或者被收購(gòu),自由軟件事業(yè)將受到嚴(yán)重打擊。1997年由墨西哥國(guó)立自治大學(xué)的Miguel de Icaz領(lǐng)導(dǎo)的項(xiàng)目組開始了Gn om開發(fā)計(jì)劃。Gnom是GNU Network Object Model Env(iGNUe網(wǎng)絡(luò)對(duì)象模型環(huán)境 )的縮寫。該計(jì)劃 的最初目的是創(chuàng)建一種基于應(yīng)用程序?qū)ο蟮募軜?gòu),類似于微軟公司的OLE和COM技術(shù)。然而,隨著項(xiàng)目的進(jìn)展,項(xiàng)目的范圍也
11、迅速地?cái)U(kuò)大;項(xiàng)目開發(fā)過程中有數(shù)百名程序員加入進(jìn)來,編 寫了成千上萬行的源代碼。該項(xiàng)目進(jìn)展很快,1998年發(fā)布了 Gn ome仏0目前的最新版本是于1999年 10月發(fā)布的October Gn o?,F(xiàn)在,Gnom已成為一個(gè)強(qiáng)勁的GUI應(yīng)用程序開發(fā)框架,并且可以在任何一種Unix系統(tǒng)下運(yùn)行。Gnom使用的圖形庫(kù)是 Gtk+ 最初為了編寫 GIMP而創(chuàng)建的一套構(gòu)件庫(kù),它是基于LGP創(chuàng)J建的,可以用它來開發(fā)開放源代碼的自由軟件,也可以開發(fā)不開放源代碼的商用軟件。Gnom的界面與KDE的界面是類似的(Gnom的目的之一就是創(chuàng)建一套類似KDE的桌面環(huán)境),熟悉KDE的用戶無需學(xué)習(xí)就能夠使用Gnome由于以
12、上幾個(gè)原因,Gnome已經(jīng)成為大多數(shù)Lin uX發(fā)布版本的首選桌面環(huán)境。由于Gnom項(xiàng)目的成功,1998年 11月Qt庫(kù)的開發(fā)者 Troll公司宣布修改許可證協(xié)議,Qt庫(kù)將成為自由軟件。但是獲取Qt庫(kù)的許可證很不方便,況且Gnom的進(jìn)展也很不錯(cuò),因而,只要有可能,應(yīng)該避免使用Qt庫(kù)以及KDE從用戶的角度看,Gn om是個(gè)集成桌面環(huán)境和應(yīng)用程序的套件。從程序員的角度看,它是一個(gè)應(yīng)用程序開發(fā)框架(由數(shù)目眾多的實(shí)用函數(shù)庫(kù)組成)。即使用戶不運(yùn)行Gnon桌面環(huán)境,用Gnom編寫的應(yīng)用程序也可以正常運(yùn)行,但是這些應(yīng)用程序是可以很好地和Gnom桌面環(huán)境集成的。Gnom桌面環(huán)境包含文件管理器,它用于任務(wù)切換、
13、啟動(dòng)程序以及放置其他程序 的“面板”、“控制中心”(包括配置系統(tǒng)的程序以及一些小東西)等。這些程序在易用的圖形界面背后隱藏了傳統(tǒng)的UNIX Shell Gnom的開發(fā)結(jié)構(gòu)使開發(fā)一致的、易用的和可互相操作的應(yīng)用程序成為可能。1.3 Linu系統(tǒng)中的軟件開發(fā)1.3.1開發(fā)所使用的庫(kù)在Linux下開發(fā)GUI程序的首要問題是采用什么樣的圖形庫(kù)。在LinuX勺發(fā)展歷史中曾經(jīng)岀現(xiàn)過多種圖形庫(kù),但是由于自由軟件的特點(diǎn)(沒有技術(shù)方面的承諾 ),使得無人繼續(xù)對(duì)它們進(jìn)行維護(hù),或者其他方面的原因,這些庫(kù)都已慢慢地被人遺忘了。Gtk+GIMP ToolKitGIMPT具包)是一個(gè)用于創(chuàng)造圖形用戶接口的圖形庫(kù)。Gtk是
14、基于LGPL授權(quán)的,因此可以用Gtk+開發(fā)開放源碼軟件、自由軟件,甚至商業(yè)的、非自由的軟件,并且不需要為授權(quán)費(fèi)或版權(quán)費(fèi)花費(fèi)一分錢。之所以被稱為GIMPT具包因?yàn)樗畛跤糜陂_發(fā)通用圖片處理程序 ” (General Image Manipulation Prctgraifi,)但是 Gtk已在大量軟件 項(xiàng)目,包括 Gnom中得到了廣泛應(yīng)用。Gtk+是在Gdk(GIMP Drawing,KiGIMP繪圖包)的基使用第一部分Linux GU編程框架及編程基礎(chǔ)礎(chǔ)上創(chuàng)建的。Gdl是對(duì)低級(jí)窗口函數(shù)的包裝(對(duì)X win do系統(tǒng)來說就是 Xlib讀者可能會(huì)看到,在本書中既有GTK又岀現(xiàn)了 Gtk+ 一般用G
15、TK弋表軟件包和共享庫(kù),用Gtk+弋表GTK勺圖形構(gòu)件集。GTK勺主要作者是:Peter Mattis Spencer Kimball spen(XJosh MacDbnad Gtk圖形庫(kù)使用一系列稱為“構(gòu)件”的對(duì)象來創(chuàng)建應(yīng)用程序的圖形用戶接口。它提供了窗口、標(biāo)簽、命令按鈕、開關(guān)按鈕、檢查按鈕、無線按鈕、框架、列表框、組合框、樹、列 表視圖、筆記本、狀態(tài)條等構(gòu)件??梢杂盟鼈儊順?gòu)造非常豐富的用戶界面。在用Gtk+開發(fā)Gnom的過程中,由于實(shí)際需要,在上面的構(gòu)件基礎(chǔ)上,又開發(fā)了一些新 構(gòu)件。一
16、般把這些構(gòu)件稱為Gnom構(gòu)件(與Gtk+勾件相對(duì)應(yīng))。這些構(gòu)件都是Gtk+勾件庫(kù)的補(bǔ)充,它們提供了許多Gtk+勾件沒有的功能。從本質(zhì)上來說,Gtk+勾件和Gnom構(gòu)件是完全類似的東西。GTK本質(zhì)上是面向?qū)ο蟮膽?yīng)用程序編程接口(API。雖然完全是用C寫成的,但它仍然是用類和回調(diào)函數(shù)(指向函數(shù)的指針)的方法實(shí)現(xiàn)的。1.3.2 Gnom的開發(fā)結(jié)構(gòu)只使用Gtk+構(gòu)件也可以開發(fā)岀優(yōu)秀的Linux應(yīng)用程序,但是Gnome構(gòu)件,特別是GnomeAppGno meUllr等),使開發(fā)界面一致的應(yīng)用程序變得更加容易。Gnom的一些新特性,如pop參數(shù)分析,保存應(yīng)用程序設(shè)置等也是Gtk+勾件所沒有的。Gnom的應(yīng)
17、用程序開發(fā)結(jié)構(gòu)核心是一套庫(kù),都是由通用的 ANSI C吾言編寫的,并且傾向于使用在類UNIX的系統(tǒng)上。其中涉及圖形的庫(kù)依賴于XWindo系統(tǒng)。Gnom差不多對(duì)任何語言都提供了 Gnome A接口,其中包括Ada Scheme Python Per、Tom Eiffel Dylar以及Objective等。至少有三種不同的C+封裝。本書只介紹有關(guān)庫(kù)的C語言接口,不過,對(duì)使用其他語言綁定的用戶來說,它也很有用,因?yàn)閺腃到其他語言之間的轉(zhuǎn)換都是非常直接的。本書包含Gnom庫(kù)1.0版本(包括兼容的bug補(bǔ)丁版,比如1.0.9 所有1.0.x版本都是兼容的)Gnom的開發(fā)架構(gòu)包含以下一些內(nèi)容:1. 非G
18、nom庫(kù)Gnom并不是從頭開始的,它充分繼承了自由軟件的傳統(tǒng)一其中許多內(nèi)容來自于Gnome項(xiàng)目開始之前的一些函數(shù)庫(kù)。其中一些庫(kù)Gnom應(yīng)用程序開發(fā)架構(gòu)的一部分,但是不屬于Gnom庫(kù)一我們稱之為非 Gnom庫(kù)??梢栽?Gnom環(huán)境中使用這些庫(kù)函數(shù)。主要有以下幾種:Glib Glib是 Gnom的基礎(chǔ),它是一個(gè)C工具庫(kù),提供了創(chuàng)建和操作常用數(shù)據(jù)結(jié)構(gòu)的實(shí)用函數(shù)。它也涉及到了可移植性問題,例如,許多系統(tǒng)缺乏 sn pri ntf函數(shù),但是glib包含了一個(gè),稱為g_snprintf()它能保證在所有平臺(tái)上使用,并且比snprintf更安全(它總是將目標(biāo)字符串以NULI結(jié)尾)。Gnome 中使用glib
19、的 1.2版本,可以和任何1.2系列的glib-起工作(.2 等等)。下載第1章Lin u軟件開發(fā)概述使用5Gtk+ Gtk+GIMP Tool的縮寫),是在Gnom應(yīng)用程序中使用的GUIX具包。Gtk最初是為了設(shè)計(jì) GIMP而引入的(GNU圖片處理程序),但是現(xiàn)在已變成通用的庫(kù)。Gtk依賴于glibGtk+包中包含了 Gdk它是對(duì)底層的X Win do系統(tǒng)庫(kù)Xlib的簡(jiǎn)化。由于 Gtk使用了 Gdk而不是直接調(diào)用 Xlib,因此Gdl的移植版本允許 Gtk+運(yùn)行在不同于 X但只有相對(duì)較少的修改的窗口 系統(tǒng)上。 Gtk+和Gimp已經(jīng)移植到了 Win32F臺(tái)(32位的 Wind
20、ow平臺(tái),包括 Windows 95/98Win dows NT/20上0對(duì)Gnom應(yīng)用程序來說,Gtk具有以下的特性:1)動(dòng)態(tài)類型系統(tǒng)。2)用C語言編寫的對(duì)象系統(tǒng),可實(shí)現(xiàn)繼承、類型檢驗(yàn),以及信號(hào)/回調(diào)函數(shù)的基礎(chǔ)結(jié)構(gòu)。3)類型和對(duì)象系統(tǒng)不是特別針對(duì)GU的。4)GtkWidg對(duì)像使用對(duì)象系統(tǒng),它定義了 Gtk的圖形組件的使用接口。5)大量的GtkWidg子類(構(gòu)件)。Gnon在基本 Gtk+勾件集合的基礎(chǔ)上添加了許多其他構(gòu)件。Gnome 1是在Gtk+ 1.版本的基礎(chǔ)上完成的。ORBit ORB是一個(gè)用 C開發(fā)的CORBA 2.2 OR和其他 ORE相比,它短小精悍,但速度更快,同時(shí)還支持C語言
21、映射。ORBi是以一整套庫(kù)函數(shù)的方式實(shí)現(xiàn)的。CORB,或稱作通用對(duì)象請(qǐng)求中介構(gòu)架(Com mon Object Request Broker ArChit是一套對(duì)象請(qǐng)求中介,或稱為ORB勺規(guī)范。一個(gè) ORB更類似于動(dòng)態(tài)鏈接程序,但是它以對(duì)象的方式操作,而非子程 序調(diào)用。在執(zhí)行過程中,程序能夠請(qǐng)求一個(gè)特定的對(duì)象服務(wù);ORB可定位對(duì)象并且創(chuàng)建對(duì)象和程序連接。例如,一個(gè)電子郵件程序可以請(qǐng)求addressbo對(duì)象,并且利用它查找人名。與動(dòng)態(tài)鏈接庫(kù)不同,CORBAT以在網(wǎng)絡(luò)內(nèi)很好地運(yùn)行,并且允許不同編程語言和操作系統(tǒng)之間進(jìn) 行交互。如果熟悉WindoWt作系統(tǒng)下的 DCOM那么CORB與之類似。Imli
22、b Imlib圖片庫(kù))提供一些例程,其中包括加載、存儲(chǔ)、顯示,以及定繪制各種流行的圖像格式 (包括GIF JPEG PNGX及TIFF的函數(shù)。它包括兩種版本:Xlib-onl版本和基于Gdk勺版本。Gnom使用Gdl版本。2. Gnor庫(kù)下面所介紹的庫(kù)是Gno me-li包;的一部分,并且是專門為Gnom項(xiàng)目開發(fā)的。libgnome libgnom是些與圖形用戶接口無關(guān)的函數(shù)集合,Gnom應(yīng)用程序可以調(diào)用其中的函數(shù)。它包含分析配置文件的代碼,也包含與一些外部實(shí)用程序的接口,比如國(guó)際化編程接口(通過 GNU getteX包)、變量解析(通過popt包)、聲音編程接口 (通過Enlightenme
23、ntDaemonesoun等。Gnome-li包考慮了與外部庫(kù)之間的交互,因此程序員無需關(guān)心庫(kù)的實(shí) 現(xiàn)或可用性。libgnomeui libgnome包含了與 GU相關(guān)的Gnom代碼。它由為增強(qiáng)和擴(kuò)展Gtk功能而設(shè)計(jì)的構(gòu)件組成。Gnom構(gòu)件通常使用用戶接口策略,以提供更方便的API函數(shù)(這樣程序員需要指定的東西較少 )。當(dāng)然,這也讓應(yīng)用程序界面更一致。libg nome主要包含:1)G nomeA構(gòu)件一般用來為應(yīng)用程序創(chuàng)建主窗口。它使用Gno meDo構(gòu)件,允許用戶重新排列工具欄,還可以將工具條從窗口上拖開。2)Gn omeCai構(gòu)件 用來編寫復(fù)雜的、無閃爍的定制構(gòu)件。6下載使用第一部分Lin
24、ux GU編程框架及編程基礎(chǔ)|3)Gnom內(nèi)置的pixma包括打開、關(guān)閉、保存以及其他操作的圖標(biāo))用于創(chuàng)建和使用對(duì)話框的例程。GnomePixn!構(gòu)件比GtkPixma功能更多。libg no met中還有幾種其他構(gòu)件,如Gno meE ntryGn omeFilePic等。這些構(gòu)件都比Gtk構(gòu)件庫(kù)中的構(gòu)件功能更強(qiáng),也更方便。libgnorba libgnorb提供與CORB相關(guān)的實(shí)用程序,包括安全機(jī)制和對(duì)象激活。對(duì)象激 活是指獲得實(shí)現(xiàn)給定接口對(duì)象的引用過程,它包括執(zhí)行服務(wù)器程序,加載共享庫(kù)模塊,或?yàn)?已有程序請(qǐng)求新的對(duì)象實(shí)例等。libzvt這個(gè)庫(kù)包含一個(gè)終端構(gòu)件(ZvtTerm)可以在Gno
25、m程序中使用它。libart_lgp這個(gè)庫(kù)包含由Raph Levi編寫的圖形繪制例程。在這里包含的是在LGP許可下發(fā)布的,用在 Gn omeCan構(gòu)件中的,Raph Levi也銷售它的增強(qiáng)版本。實(shí)質(zhì)上它是一 個(gè)矢量圖形光柵圖形庫(kù),功能類似于PostScri語言。3. 其他庫(kù)這些庫(kù)一般使用在 Gnom應(yīng)用程序中,但它不是Gn ome-li專屬的部分。Gnome-print Gnome-pri目前還是實(shí)驗(yàn)性的,但是非常有前途。它使用libart_lgp庫(kù),可以和GnomeCan一起工作得很好。它提供一個(gè)虛擬輸岀設(shè)備(稱打印上下文”),因此一段代碼能輸岀到一個(gè)打印預(yù)覽構(gòu)件或PostScript文件,
26、還可以輸岀到其他打印機(jī)格式。Gnome-pr也包含與打印相關(guān)的GU元素,例如打印設(shè)置對(duì)話框、虛擬字體接口(處理X字體不可打印的問題)。Gnome-xml Gnome-x是還未經(jīng)驗(yàn)證的 XML引擎,它由 WWW、會(huì)的 Daniel VeillOld寫。它能按照樹狀結(jié)構(gòu)分析XML,也能按照 XML輸岀樹狀結(jié)構(gòu)。它對(duì)任何需要加載和保存結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用程序來說是很有用的,許多Gn om應(yīng)用程序把它作為文件格式使用。這個(gè)庫(kù)不依賴于任何其他的庫(kù)(甚至glib,所以它只是在名義上是一個(gè)Gnom庫(kù)。然而,可以認(rèn)為大多數(shù)Gnom用戶都安裝了它,因此如果應(yīng)用程序使用了這個(gè)庫(kù),對(duì)用戶來說也沒有什么不方 便。Guil
27、e Guile是 Schen編程語言在一個(gè)庫(kù)中的實(shí)現(xiàn),它使任何應(yīng)用程序都能帶有一個(gè)嵌 入式的Shem解釋器。它是 GNU項(xiàng)目的正式擴(kuò)展語言,并且有一些Gnom應(yīng)用程序也使用它。為應(yīng)用程序添加擴(kuò)展語言聽起來挺復(fù)雜,但是有了Guile后就微不足道了。一些Gnom應(yīng)用程序也支持 Per和Python 旦實(shí)現(xiàn)了應(yīng)用程序,同時(shí)支持幾種語言就會(huì)變得很容易。Guil(在Gnom開發(fā)者心目中有著特殊的地位。Bonobo Bonob是種對(duì)象嵌入式結(jié)構(gòu),類似于Microso的 OLE例如,它允許你在電子表格中嵌入圖表。它將在Gnom中普遍使用。任何應(yīng)用程序?qū)⒛芡ㄟ^適當(dāng)?shù)腂o nob組件調(diào)用Gnom庫(kù),顯示 MIM
28、E類型數(shù)據(jù),例如純文本、HTML或圖像。1.4開發(fā)Linu應(yīng)用程序的編程語言和編程工具Lin ux是種類Unix的操作系統(tǒng)。傳統(tǒng)Unix下的開發(fā)語言是 C語言。因?yàn)?C語言是平臺(tái)適應(yīng)性最強(qiáng)的語言,差不多每種平臺(tái)上都會(huì)有一個(gè)C編譯器。C語言也更易移植,因而,在LinuxT編程的最佳語言應(yīng)該是C語言,Lin uxh的很多應(yīng)用程序就是用C語言寫的。當(dāng)然,也可以使用其他語言。因?yàn)镚tk和Gnom是用C語言編寫的,所以在開發(fā)LinuxT的GUI程序時(shí)使用 C語言是非常第1章Lin u軟件開發(fā)概述使下載方便的。但是 Gtk+也提供與許多其他語言的接口,如 Ada Scheme Python Per、Tom Eiffel Dylar以及Objective等。如果用 C+語言開發(fā)基于Gtk應(yīng)用程序,可以使用一個(gè)名為Gtk-的函數(shù)庫(kù),它是GTK工具包的C+風(fēng)格的封裝。如果要用Gtk庫(kù)和其他語言,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年竹林胺片搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年白藥搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年版中國(guó)藥學(xué)教育行業(yè)發(fā)展展望及投資創(chuàng)新模式分析報(bào)告
- 2024-2030年版中國(guó)醫(yī)用超聲耦合劑行業(yè)未來發(fā)展趨勢(shì)及投資價(jià)值研究報(bào)告
- 2024-2030年煤球公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年治菌必妥搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024年度企業(yè)形象攝影合作框架協(xié)議3篇
- 農(nóng)村土地租賃合同:農(nóng)業(yè)觀光園
- 五一全民健身活動(dòng)方案策劃
- 農(nóng)田租賃續(xù)簽合同
- 期末模擬卷01(全國(guó)適用)-【中職專用】高二語文上學(xué)期職業(yè)模塊期末模擬卷(解析版)
- 漏洞修復(fù)策略優(yōu)化
- 手術(shù)安全培訓(xùn)
- 司機(jī)聘用協(xié)議書與司機(jī)聘用合同
- 汽車吊安全教育培訓(xùn)
- 浙江省寧波市慈溪市2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2024七年級(jí)數(shù)學(xué)上冊(cè)第4章相交線與平等線項(xiàng)目學(xué)習(xí)2包裝中的智慧習(xí)題課件新版華東師大版
- 2024湖南田漢大劇院事業(yè)單位招聘若干人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 碼頭安全生產(chǎn)知識(shí)培訓(xùn)
- 公司招商部工作流程及管理制度
- 漢語閱讀教程第一冊(cè)第十二課
評(píng)論
0/150
提交評(píng)論