自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux操作系統(tǒng)直接建立在內(nèi)核基礎(chǔ)上

運(yùn)維 系統(tǒng)運(yùn)維
開發(fā)系統(tǒng)的組成 圖1簡(jiǎn)要說明了Linux系統(tǒng)開發(fā)工具的組成。 Linux操作系統(tǒng)內(nèi)核底層的開發(fā)工具和輔助工具,有的是直接建立在內(nèi)核基礎(chǔ)上,如Shell、GCC和Make等;有的是建立在腳本語言的基礎(chǔ)之上的,如Automake、Autoconf和Libtool等。

Linux操作系統(tǒng)對(duì)于電腦使用的玩家的常用軟件,然后我就學(xué)習(xí)及深入的研究Linux操作系統(tǒng),在這里和大家一起探討Linux操作系統(tǒng)的使用方法,希望對(duì)大家有用。平臺(tái)選擇 首先,從事GNU/Linux(以下簡(jiǎn)你Linux)系統(tǒng)下的應(yīng)用開發(fā),應(yīng)該有一個(gè)合適的操作平臺(tái)和開發(fā)環(huán)境,所以選擇和安裝Linux操作系統(tǒng)成為L(zhǎng)inux開發(fā)者的第一課。目前可供選擇的Linux操作系統(tǒng)種類很多.

如Red Hat(最新版名為Fedora)、SuSE、Mandrake和中科紅旗(Red Flag),還有開源組織中有名的Debian等。雖然版本很多,但它們?cè)诘讓酉到y(tǒng)組成上的差別是微乎其微的。我們以Red Hat 9.0為開發(fā)平臺(tái),以后的操作和開發(fā)都在這一系統(tǒng)平臺(tái)上進(jìn)行。

開發(fā)系統(tǒng)的組成 圖1簡(jiǎn)要說明了Linux系統(tǒng)開發(fā)工具的組成。 Linux操作系統(tǒng)內(nèi)核底層的開發(fā)工具和輔助工具,有的是直接建立在內(nèi)核基礎(chǔ)上,如Shell、GCC和Make等;有的是建立在腳本語言的基礎(chǔ)之上的,如Automake、Autoconf和Libtool等。

它們是Linux操作系統(tǒng)外層的圖形界面開發(fā)工具(GTK+、QT等)和網(wǎng)絡(luò)應(yīng)用開發(fā)工具(Perl、PHP和Python等)的基礎(chǔ)和過渡。掌握了底層開發(fā)工具,對(duì)外層應(yīng)用開發(fā)是有好處的,這樣可以加快和優(yōu)化外層應(yīng)用開發(fā),從而達(dá)到開發(fā)速度和開發(fā)質(zhì)量的和諧統(tǒng)一。

慎選IDE 本文講述的程序編輯工作多數(shù)是用Linux系統(tǒng)中常用的Emacs和vi來做,在終端窗口中進(jìn)行命令編譯調(diào)試。熟悉Windows下編程的朋友們會(huì)質(zhì)疑為什么不用IDE(集成開發(fā)環(huán)境),是Linux操作系統(tǒng)沒有嗎?答案當(dāng)然是否定的。

Linux操作系統(tǒng)下有很多IDE,事實(shí)上Emacs就是一個(gè)非常好的IDE,其它的還有CodeForge、ANJUTA和Kdeveloper等。對(duì)編程人員來說,IDE在編譯控制的底層隱藏了很多東西,如果軟件開發(fā)者真正了解和掌握了這些東西,對(duì)開發(fā)出更好的應(yīng)用程序是大有幫助的。

對(duì)于IDE可以這么比喻,它好象是飛機(jī)上的自動(dòng)駕駛儀,有了它飛行員會(huì)輕松許多,但如果飛行員沒有真正掌握飛機(jī)的駕駛技術(shù),在飛行中如果自動(dòng)駕駛儀失靈的話,墜機(jī)是必然的,這樣的飛行員是不能讓他駕機(jī)的。

編程人員也如此,只用IDE開發(fā)軟件是不夠的。 開始動(dòng)手 坐談?wù)摰啦蝗缙鸲?。下面就從一個(gè)簡(jiǎn)單的C語言源文件的編譯開始,研究這些內(nèi)容。 首先是安排好目錄。在自己的用戶目錄下,創(chuàng)建一個(gè)總的目錄learn-gnu,然后在此目錄下創(chuàng)建第一個(gè)學(xué)習(xí)目錄learn-1.

在此目錄下用Emacs編輯hello.c文件,輸入如下內(nèi)容: //hello.c #include int main(int argc, char *argv[]) { int i; if(argc<=1) { printf("The program name is :%s\n", argv[0]); } else { printf("The program name is :%s\n", argv[0]); for(i=1; i printf("The argument %d is : %s\n", i, argv[i]); } }

這段代碼試驗(yàn)了命令行參數(shù)及其簡(jiǎn)單的用法,正常情況下在終端中輸入下面的命令即可編譯: # gcc hello.c -o hello 編譯后輸出可執(zhí)行文件hello,執(zhí)行./hello即可輸出下面的語句: The program name is :./hello 這是C語言初學(xué)者學(xué)到的最簡(jiǎn)單、最原始、最直接、也是最有效的編譯方法,測(cè)試方法也是最簡(jiǎn)單的。

因?yàn)樗o用例的代碼也比較簡(jiǎn)單,不用太復(fù)雜的方法。 這里沒有用很經(jīng)典的“Hello world”程序,其原因是筆者在輔導(dǎo)一些學(xué)生們學(xué)習(xí)C語言課程時(shí),發(fā)現(xiàn)他們對(duì)這個(gè)程序還不太理解。 有沒有更好的辦法來編譯這個(gè)源程序呢?可以編寫一個(gè)簡(jiǎn)單的Makefile文件,使之自動(dòng)編譯源程序,生成可執(zhí)行文件,表1為Makefile文件的內(nèi)容。

 CC = gcc 其中執(zhí)行make或make all即執(zhí)行all: all: hello.c 后面的命令,即編譯; $(CC) hello.c -o hello make clean 就執(zhí)行clean:后面的命令, clean: 即清除編譯結(jié)果。 rm hello -f 用Emacs編輯它并和上面的hello.c保存到同一文件目錄,注意文件名為Makefile.

然后,在終端中輸入make命令,此時(shí)會(huì)出現(xiàn)下面的情況: # make # gcc hello.c -o hello 再執(zhí)行列目錄命令,會(huì)發(fā)現(xiàn)已生成可執(zhí)行文件hello: # ls hello hello.c Makefile 下面是多個(gè)參數(shù)的輸出結(jié)果,相信會(huì)對(duì)命令行參數(shù)有初步的了解。

 # ./hello abc def 123 The program name is :./hello The argument 1 is : abc The argument 2 is : def The argument 3 is : 123 Makefile是Make工具默認(rèn)的配置文件,執(zhí)行make命令時(shí),Make自動(dòng)查找Makefile文件。

Linux操作系統(tǒng)用多個(gè)C語言源文件來編譯時(shí),使用Make會(huì)讓編譯過程更加快捷有效。因?yàn)镸ake是按源文件的更新時(shí)間判斷是否進(jìn)行編譯的,即改動(dòng)了哪個(gè)文件就編譯哪個(gè)文件,未改動(dòng)的就不做處理。 這里以一個(gè)稍復(fù)雜的例子來說明。

一個(gè)項(xiàng)目由三個(gè)C語言源文件a.c、b.c和hello.h構(gòu)成,其中a.c和b.c中都包含hello.h,最終輸出的可執(zhí)行文件為hello。表2為這個(gè)Makefile文件的內(nèi)容。 想進(jìn)一步學(xué)習(xí)Make的使用和Makefile文件的編寫,可以看一下它的參考文檔,網(wǎng)址是http://www.gnu.org/manual/make-3.79.1/html_chapter/make_toc.html。

如果源程序再復(fù)雜一些,例如多一些源文件和附加一定數(shù)量的資源(如圖像和文檔等),或者涉及到系統(tǒng)中的其它支持(如需要系統(tǒng)安裝有文檔處理工具,語法檢測(cè)工具,某些開發(fā)工具的開發(fā)庫等)時(shí),再編寫Makefile文件就會(huì)變得非常麻煩,也非常容易出錯(cuò)。

這種情況可以使用Autoconf 、Automake和Libtool等工具來完成這一工作,這讓Makefile有更多的功能,Linux操作系統(tǒng)編譯更加完備,檢測(cè)更加全面,而且還多出了安裝、打包發(fā)布等更多新功能。

【編輯推薦】

  1. Linux操作系統(tǒng)統(tǒng)實(shí)驗(yàn)場(chǎng)景簡(jiǎn)介
  2. Linux操作系統(tǒng)硬盤分區(qū)的基本概念
  3. Linux操作系統(tǒng)環(huán)境建立編譯執(zhí)行
  4. Linux操作系統(tǒng)的興起在各領(lǐng)域發(fā)展的現(xiàn)狀和趨勢(shì)
  5. CentOS VM主機(jī)支持RedHat AS3/AS4/AS5Linux操作系統(tǒng)
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2011-01-14 16:23:46

Linux內(nèi)核

2010-02-25 10:46:44

Linux操作系統(tǒng)

2009-12-17 18:19:12

Linux操作系統(tǒng)

2011-01-04 18:15:21

2009-09-01 09:14:42

2009-02-17 16:07:29

Linux操作系統(tǒng)內(nèi)核啟動(dòng)參數(shù)

2010-05-17 16:26:36

IIS安全

2009-06-19 20:32:00

Linux

2009-12-09 17:25:19

Linux操作系統(tǒng)

2011-01-14 16:01:27

2011-01-14 16:51:44

Linux內(nèi)核

2020-12-28 08:51:06

操作系統(tǒng)微內(nèi)核Dubbo

2023-10-13 08:38:35

Linux操作系統(tǒng)

2009-03-10 17:43:54

Linux操作系統(tǒng)磁盤陣列

2010-01-14 17:44:17

CentOS vsft

2010-04-19 17:25:31

Unix操作系統(tǒng)

2010-04-14 09:40:05

2020-12-29 16:39:01

Linux代碼命令

2020-05-12 09:31:59

網(wǎng)絡(luò)管理Linux操作系統(tǒng)

2010-03-18 14:52:05

Linux操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)