在linux下進(jìn)行軟件開發(fā)是一件很不輕松的事情。 可是如果你入門了, 一些基礎(chǔ)的工具使用熟練了, 在linux下爬代碼是很舒服很愉悅的事情。
為什么這么說呢? linux 下的軟件開發(fā)與windows下的軟件開發(fā)很不一樣。
windows為開發(fā)者提供了一個(gè)無比強(qiáng)大的編譯工具Visual Studio,微軟將那些復(fù)雜和令人難受的編譯器配置全部給透明化了, 對(duì)于開發(fā)者來說,只要專注與軟件本身就好了。
而linux是沒有這么好用的工具的, 我用過anjuta, 這個(gè)工具在我看來就像一個(gè)半成品, 在這個(gè)工具下調(diào)試軟件是一件非常痛苦的事,現(xiàn)在想想還很糾結(jié)。我還用過eclipse cdt, 開發(fā)android軟件的時(shí)候我用的是eclipse, 所以對(duì)這個(gè)軟件很熟悉,可惜的是網(wǎng)絡(luò)上過于這個(gè)軟件編譯和添加共享庫(kù)的介紹太少了, 我用最土的方法添加共享庫(kù),雖然最后軟件可以編譯通過, 但是我搞不清楚怎么聯(lián)合源碼編譯調(diào)試,看了eclipse cdt 官方manual, 至今還是很糊涂。沒辦法了, 只好回到頭來,硬著頭皮看autotools. 接下來就是主要介紹autotools的使用方法。
在學(xué)習(xí)autotools的使用方法之前, 建議大家學(xué)習(xí)下Makefile語(yǔ)法 和 Linux Shell 基礎(chǔ)知識(shí), 不用很細(xì), 畢竟要精通還是要費(fèi)好大一番功夫的。
Makefile語(yǔ)法 鏈接: 這個(gè)非常簡(jiǎn)單的介紹, 估計(jì)看了之后大家都會(huì)對(duì)makefile有個(gè)比較簡(jiǎn)單的了解。
makefile的語(yǔ)法及寫法 http://blog.csdn.net/zhoubl668/archive/2009/03/03/3952967.aspx
makefile的語(yǔ)法及寫法(二) http://blog.csdn.net/zhoubl668/archive/2009/03/03/3952988.aspx
另外還有一個(gè)參考文檔, 內(nèi)容比較多,是用來查找資料的。
GNU make 中文手冊(cè): http://www.linuxsir.org/main/doc/gnumake/GNUmake_v3.80-zh_CN_html/index.html
這些是關(guān)于makefile語(yǔ)法的, 可是如果我們要是有很大的工程, 或者是需要開發(fā)可移植的軟件時(shí), 這個(gè)就不很方便了。這就用到了autotools了。
首先需要說的是, autotools是為了移植方便和幫助用戶生成復(fù)雜的Makefile而設(shè)計(jì)的, 也就是說, 沒有autotools我們會(huì)了Makefile也可以開發(fā)軟件, 只不過麻煩些罷了。
autotools的工具有autoscan aclocal autoconf 等。
網(wǎng)上的資料有:
Linux下Makefile的automake生成全攻略 http://tech.sina.com.cn/s/2004-10-19/1115443045.shtml
使用autotools建立Makefile簡(jiǎn)單實(shí)例解析 http://www.cublog.cn/u/21948/showart_175235.html
第一個(gè)比較好, 比較簡(jiǎn)單的說明了情況, 是入門的好東西。
我用eclipse 搭建的工程都是很小的工程, 如果要是搭建稍微大點(diǎn)的工程(引用的共享庫(kù)較多的時(shí)候),就很麻煩了, 我都是一個(gè)個(gè)引用的,要是include里面還有不知道位置的,我還要自己去搜索去找,再添加, 太麻煩了。你有更好的方法么? 我用autotools的話,就很方便了,添加好要引用的庫(kù)基本上不會(huì)出現(xiàn)問題了。