一、工具的使用
4R]E4c9_-t0
E V{ I4_tJ.w0 1、學(xué)會(huì)使用vim/emacs,vim/emacs是linux下最常用的源碼編輯具,不光要學(xué)會(huì)用它們編輯源碼,還要學(xué)會(huì)用它們進(jìn)行查找、定位、替換等。新手的話(huà)推薦使用vim,這也是我目前使用的文本編輯器。 IT我最牛-程序員的技術(shù)討論與分享園地cZP G7[GU} n
IT我最牛-程序員的技術(shù)討論與分享園地LP'FkE1ue p
2、學(xué)會(huì)makefile文件的編寫(xiě)規(guī)則,并結(jié)合使用工具aclocal、autoconf和automake生成makefile文件。
r!G ? [0| dG0L0
j6J N9b&Uq0 3、掌握gcc和gdb的基本用法。掌握gcc的用法對(duì)于構(gòu)建一個(gè)軟件包很有益處,當(dāng)軟件包包含的文件比較多的時(shí)候,你還能用gcc把它手動(dòng)編譯出來(lái),你就會(huì)對(duì)軟件包中各個(gè)文件間的依賴(lài)關(guān)系有一個(gè)清晰的了解。 IT我最牛-程序員的技術(shù)討論與分享園地&~1WQZ"N Qen_
IT我最牛-程序員的技術(shù)討論與分享園地3|#V:@-b;t%c\
4、掌握svn/cvs的基本用法。這是linux,也是開(kāi)源社區(qū)最常用的版本管理系統(tǒng)。可以去試著參加sourceforge上的一些開(kāi)源項(xiàng)目。
f(V4}T~O0
!g*nDa\*pdt`_ Oe0 二、linux/unix系統(tǒng)調(diào)用與標(biāo)準(zhǔn)C庫(kù) IT我最牛-程序員的技術(shù)討論與分享園地r A$sj8b+C
/E_4e xI"P'x0 系統(tǒng)調(diào)用應(yīng)用軟件與操作系統(tǒng)的接口,其重要性自然不用說(shuō),一定要掌握。推薦學(xué)習(xí)資料為steven先生的UNIX環(huán)境高級(jí)編程(簡(jiǎn)稱(chēng)APUE)。
}M_3GB'p:Q0IT我最牛-程序員的技術(shù)討論與分享園地wpWK4kkD&Ip
三、庫(kù)的學(xué)習(xí) IT我最牛-程序員的技術(shù)討論與分享園地Nmjz.@
[]4b,Vs$mF`0 無(wú)論是在哪個(gè)平臺(tái)做軟件開(kāi)發(fā),對(duì)于庫(kù)的學(xué)習(xí)都很重要,linux下的開(kāi)發(fā)庫(kù)很多,我主要介紹一下我常常用到的一些庫(kù)。 IT我最牛-程序員的技術(shù)討論與分享園地 H r"H` W
IT我最牛-程序員的技術(shù)討論與分享園地;A2v`'^5Zb
1、glib庫(kù)
"MX-iuG'w:b0
H L/IQ+kz&u \~8D0 glib 庫(kù)是gtk+和gnome的基礎(chǔ)庫(kù),并具是跨平臺(tái)的,在linux、unix和windows下都可以用。glib庫(kù)對(duì)于linux平臺(tái)開(kāi)發(fā)的影響就像 MFC對(duì)windows平臺(tái)開(kāi)發(fā)的影響一樣,很多開(kāi)源項(xiàng)目都大量的使用了glib庫(kù),包括gimp、gnome、gaim、evolution和 linux下的集群軟件heartbeat。因?yàn)間lib庫(kù)自帶有基本的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),所以在學(xué)習(xí)glib庫(kù)的時(shí)候可以順便學(xué)習(xí)一下基本的數(shù)據(jù)結(jié)構(gòu)(包括鏈表、樹(shù)、隊(duì)列和hash表)。 IT我最牛-程序員的技術(shù)討論與分享園地"?3w%X I_D-j"N~ ~e5Z
)R/vZ,w U$o ]L0 2、libxml庫(kù) IT我最牛-程序員的技術(shù)討論與分享園地u*t%k Xp@]0KA2cE7^
IT我最牛-程序員的技術(shù)討論與分享園地E$RdK)B7i.Q+i&_;E:f
libxml是linux平臺(tái)下解析XML文件的一個(gè)基礎(chǔ)庫(kù),現(xiàn)在很多實(shí)用軟件都用XML格式的配置文件,所以也有必要學(xué)習(xí)一下。
z+zYDk~0IT我最牛-程序員的技術(shù)討論與分享園地(|;d ~"c~g
3、readline庫(kù) IT我最牛-程序員的技術(shù)討論與分享園地(D|;NZ |W-KN
ka'{ rGp-|~0 readline 庫(kù)是bash shell用的庫(kù),如果要開(kāi)發(fā)命令行程序,那么使用readline庫(kù)可以減少很多工作量,比如bash里的命令行自動(dòng)補(bǔ)全,在readline里就已經(jīng)有實(shí)現(xiàn),當(dāng)然你也可以用自己的實(shí)現(xiàn)替代庫(kù)的行為。readline庫(kù)有很多網(wǎng)站介紹的,只要google一下readline就可以找到一堆了。
fS} bM-{3h0
Q L i#`:p@DGSmP0 4、curses庫(kù) IT我最牛-程序員的技術(shù)討論與分享園地4k]LL$[@E{
IT我最牛-程序員的技術(shù)討論與分享園地R8Z5l1L)Z!Y
curses 庫(kù)以前是vi程序的一部分,后來(lái)從vi里提取出來(lái)成為一個(gè)獨(dú)立的庫(kù)。curses庫(kù)對(duì)于編寫(xiě)終端相關(guān)的程序特別有用,比如要在終端某一行某一列定位輸出,改變終端字體的顏色和終端模式。linux下的curses庫(kù)用的是GNU實(shí)現(xiàn)的ncurses(new curses的意思)。
%D a s/JY@)} S0IT我最牛-程序員的技術(shù)討論與分享園地.F L9|@uo rPE
5、gtk+和KDE庫(kù)
W u4r i.BttSg+_0IT我最牛-程序員的技術(shù)討論與分享園地a7g/V F8H7j$h8l p
這兩個(gè)庫(kù)是開(kāi)發(fā)GUI應(yīng)用程序的基礎(chǔ)庫(kù),現(xiàn)在linux下的大部份GUI程序都是基于這兩個(gè)庫(kù)開(kāi)發(fā)的,對(duì)于它們 的學(xué)習(xí)也是很有必要的。
_%p9M_|,xi.j X0IT我最牛-程序員的技術(shù)討論與分享園地MV0um$p(`Q/?
四、網(wǎng)絡(luò)的學(xué)習(xí) IT我最牛-程序員的技術(shù)討論與分享園地{ }r?0W*Bo;vw
IT我最牛-程序員的技術(shù)討論與分享園地*b.GLX{i2w
網(wǎng)絡(luò)這個(gè)東西太寬了,推薦學(xué)習(xí)資料steven先生的UNIX網(wǎng)絡(luò)編程(簡(jiǎn)稱(chēng)UNP)和TCP/IP協(xié)議詳解,更進(jìn)一步的話(huà)可以學(xué)習(xí)使用libnet編寫(xiě)網(wǎng)絡(luò)程序