學習autotools後的回憶

2021-05-25 07:48:47 字數 1727 閱讀 4952

作者****:馮牮 [email protected]

在linux下工作已經3年多了,對於工程管理工具的使用,也是經歷了從簡到繁的好幾個階段。

一 手動編寫makefile階段

這是最初級的階段,通常也是學習嵌入式linux開發時,最先需要學會使用的工具之一。這個階段,有兩大塊內容需要學習,首先是要明白gcc是怎麼回事,然後是要了解makefile的一些基本概念和用法。說實話,這個階段,我對gcc和makefile,其實也只是一些類似於死記硬背試的表面理解。對linux專案工程的認識,也很淺陋,一般認為乙個專案,就是最終會編譯成乙個可執行檔案。

我工作後的第乙個專案,是mips平台上的乙個後台程式,makefile就是純手工編輯的,比較簡單,不到100行,僅僅是完成了編譯工作,除了gcc,沒有呼叫到其他的工具。在部署的時候,是把交叉編譯出來的唯一的乙個可執行檔案手動拷貝到開發板的/usr/bin目錄中。

二 初次接觸qt

我的第二個專案,是arm上的qt程式。在qt中,引入了qmake作為工程管理工具,qmake的作用,其實就是簡化makefile的編寫。這個階段,我對makefile的認知,本質上並沒有提高,之前對gcc和makefile,用的是死記硬背,這時對於qmake的認識,同樣是類似於死記硬背。這個專案的makefile,主要完成的仍然是編譯工作。專案本身的依賴關係並不複雜,所以在部署的時候,同樣是手動複製。

三 上手moblin

前面做的兩個專案,都屬於嵌入式平台上的「專用型」程式,是傳統意義上的嵌入式程式,和gnome這種桌面環境差別很大。到了第三個專案,開始使用moblin平台,這是一種通用型的平台,已經預裝了很多底層的庫,程式之間的依賴關係,也變得複雜起來,在這個上面開發程式,更像是傳統的桌面環境程式設計。在熟悉平台的過程中,「迫不得已」需要對gcc和makefile做更深入的學習。在這一輪學習中,對gcc的工作方式有了一些更深入的理解,總結出來就是對幾個最常用引數的理解,包括 -i,-l,-l,再加上乙個-wl,-rpath,引數。我在招人的時候,也很喜歡就這幾個引數的使用出一些題,百試不爽。

此時的**,由於專案歷史原因,仍然是純手工編輯的makefile,但是已經感覺到它的不足了,尤其是在部署的時候,最麻煩。比如桌面快捷方式,就得手動編寫,不能在make時正確自動生成,再比如dbus服務程式的自啟動檔案,也是手動編輯,然後拷貝到對應的目錄。

四 公升級到meego

公升級到meego平台,上層開發使用的工具,又回到了qt。經歷了之前的使用和學習,對linux環境已經很熟悉了,對程式的執行和部署,也有了更詳實的體會。這個時候的**,使用qmake進行管理,編譯,安裝,打包,一應俱全。

五 學習autotools

在我的第乙個階段,其實就學習過autotools,但是其實也只是了解了它的形,並不理解它的神,而且由於autotools比較複雜,專案中也一直沒有真正的使用過。直到現在,才又重新學習了一邊autotools的使用,並且使用autotools對moblin時代的乙個專案進行了改造。

六 總結

從功能上看,autotools和qmake,都已經相當的完善了,只不過他們有各自的使用場合,qmake主要還是針對基於qt的程式,而autotools的適用面更廣(它的難度也是最大的)。要學習autotools,網上有教程,可以看看,但是最好還是找一些實際的專案**,看看別人是怎樣使用autotools的(網上的教程,通常都是構造乙個hello world型的例子,過於簡單,學習效果不一定好)。另外,autotools的理念,也跟個人的linux使用經驗有關,當對linux系統有了比較深的感受之後,再來學習autotools,可能效果會更好。

80後回憶 逃學

從小學一年級到四年級,我乙個星期上學的天數平均在三天左右。早晨起來的例行程式是 我肚子疼,頭疼,渾身疼 然後老媽去給我請假。回來以後,我就在家裡瘋。記得有一次,老媽突然不吃這一套了,非要逼著我去上學,不去不行。後來她想揍我,然後我就跑。那個時候是夏天,我穿著拖鞋在前面跑,我媽在後面追。圍著村子跑了一...

AutoTools工具的使用

最近一直在看linux下autotools工具的使用方法,查閱了一些資料,感覺入門級別的文章網上寫的很多,但寫的清楚明白的應該是下面這篇。a brief introduction to autoconf 而完整詳細,寫的特別棒的是這本書 autoconf,automake and libtool 各...

linux 下的 autotools 使用

在linux環境下,當拿到乙份原始碼,安裝過程通常簡單如下 configure make make installc project 原始碼中通常有個configure程式,確切來說他是乙個shell指令碼。他的作用就是檢測當前作業系統和一些執行環境 比如依賴和編譯器等 然後根據這些資訊生成make...