很多時候我們都是在使用IDE來構建自己的小項目,使用IDE,在學習中足夠了。
但是漸漸的發現使用IDE已經滿足不了自己了,發現自己處於兩難的境地。為什麼這麼說呢?
首先,最主要的出發點是想要去自己動手構建一個項目。
其次,去學習如何寫makefile嗎?
第三,有沒有其他的選擇呢?
學習makefile,是根本上出發去學習如何組織構建一個項目,應該是不錯的選擇,真的不錯嗎?
當嘗試去尋找makefile相關資料的時候,看到長長的文檔目錄和密密麻麻的英文,即使我承認自己的英文水平還不錯,
但是頭也大了。也有一些不錯的中文makefile教程,但是學習起來無異於學習一門新的語言,從時間的角度出發,至少對於
我來說不是個明智的選擇。
autotools && cmake 應該是不錯的選擇?
autotools 同 cmake的比較這裡就羅嗦了,網上這樣子的文章都太多了。不過大多都是關於cmake如何取代autotools,最典型的就是
KDE早就放棄autotools,轉投cmake門下。兩者各自的優缺點,相信只有自己都親自嘗試一下才會知道。有的時候也不是自己喜歡就
可以的,如果你所在的團隊在使用autotools,那你能說你只會cmake嗎? 還是根據實際情況,最好是保持和團隊一直,允許超越,但是
不允許落下。
其實無論是autotools還是cmake,都是一種中間形式的項目組織構建工具。最典型的莫過於cmake圈子中的那句話:cmake即編程。
為什麼這樣說呢? 如果你說makefile寫起來 是shell指令碼的話,那麼cmake優雅的方式會讓你感覺是用語言去建立項目,就這麼簡單。
autotools? 我才剛開始,入門的感覺和cmake比較起來,就是不需要寫的那麼多,(也許是我自己學習的DEMO都是比較小的,還沒有
體會到在企業階層專案中運用的優缺點.),但是組織所需的檔案就比較的分散,不像cmake只需要CMakeLists.txt,而autotools需要按步驟
操作,而且關聯性比較強。
說了那麼多,如果您是新手,那麼請自己去查閱資料。如果您是前輩,那麼就請批評指正~
學語言都是從Hello World程式開始,那麼學習autotools,也不能免俗,先從一個簡單的Hello World 樣本project開始,然後再介紹autotools
plugins 在eclipse中的使用.明白了原理和操作的方法嗎,使用第三方開發的工具也就不會迷茫,主要是eclipse autotools plugins在使用的時候
預設的配置是有些問題的,所以需要自己改動一下,後面會介紹的,先來看DEOM:
1. 我在自己的案頭建立了一個自己的工程目錄HelloWorld:
cd 案頭mkdir HelloWorldtouch HelloWorld.c#include <stdio.h>#include <stdlib.h>int main(int args,char ** argv){ puts("Hello World!\n"); return EXIT_SUCCESS;}
2.在目前的目錄下面執行autoscan.會產生configure.scan和autoscane.log(記錄檔)檔案 ,然後將configure.scan重新命名問configure.in
autoscanmv configure.scan configure.in
3.編輯configure.in檔案:
4.建立Makefile.am,並編輯檔案:
5. 建立一些必要的檔案,使工程看起來更像樣一點:
touch NEWS AUTHORS ChangeLog README
6.產生必要的設定檔:
autoreconf -fvi
其實有很多是按照一些有序步驟操作的,一般會出現autogen.sh指令碼 然后里面的內容是:
aclocalautoheaderautomake --add-missing autoconf
7.下面執行configure然後make就可以得到結果. (省略其他的操作)
./configuremake
最後得到了我們想要的可執行檔helloworld.
使用autotools組織構建一些簡單的小項目的步驟就是這樣子的,如果是使用cmake,會更簡單,所有的操作只需要編寫一個CMakeLists.txt檔案.
然後就是一些錦上添花的操作,像是建立NEWS,AUTHORS,ChangeLog,README etc..這些檔案.
下面看看如何在eclipse中使用autotools plugins.
1.首先安裝autotools plugins:
2.下面按照一般的步驟建立一個工程:(具體的可以參見eclipse的外掛程式協助文檔 Help ->Help Contents)
3.下面就會發現,嘗試去編譯這個項目是不能成功的,而終端現實的錯誤是下面這個樣子的:
4.如果你確定安裝了autotools系列的所有工具,那麼就請執行先面的操作.
在項目視圖中選中HelloWorld項目,然後 Project->Properties->General->Tools Settings Tab
可以看出eclipse只是按照名稱在組織,而導致前面問題的原因是路徑找不到。所以我們需要添加路徑:
做完這些,就可以去build pro && run application了。
至於autogen.sh,我在eclipse中看到了相關的配置選項,但是自己還沒有琢磨出該如何使用。等日後明白了,再補充吧。
如果你知道,也可以告訴我.