很多時候我們都是在使用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 HelloWorld touch 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
autoscan mv configure.scan configure.in
3.編輯configure.in文件:
4.創建Makefile.am,並編輯文件:
5. 創建一些必要的文件,使工程看起來更像樣一點:
touch NEWS AUTHORS ChangeLog README
6.生成必要的配置文件:
autoreconf -fvi
其實有很多是按照一些有序步驟操作的,一般會出現autogen.sh腳本 然后里面的內容是:
aclocal autoheader automake --add-missing autoconf
7.下面執行configure然后make就可以得到結果. (省略其他的操作)
./configure make
最后得到了我們想要的可執行文件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中看到了相關的配置選項,但是自己還沒有琢磨出該如何使用。等日后明白了,再補充吧。
如果你知道,也可以告訴我.