溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

autoconf,automake,libtool

發(fā)布時間:2020-06-21 04:59:36 來源:網(wǎng)絡(luò) 閱讀:1068 作者:清風(fēng)徐來918 欄目:開發(fā)技術(shù)


(1)autoscan, automake, autoconf 之間的協(xié)作關(guān)系

autoconf,automake,libtoolautoconf,automake,libtool


(2)libtool

o: 編譯的目標(biāo)文件

a: 靜態(tài)庫,其實(shí)就是把若干o文件打了個包

so: 動態(tài)鏈接庫(共享庫)


lo: 使用libtool編譯出的目標(biāo)文件,其實(shí)就是在.o文件中添加了一些信息。

la: 使用libtool編譯出的庫文件,其實(shí)是個文本文件,記錄同名動態(tài)庫和靜態(tài)庫的相關(guān)信息和依賴關(guān)系。該文件中的dependency_libs變量記錄該庫依賴的所有庫(可以是so、a、la文件);libdir變量為庫的安裝位置;library_names變量為共享庫的名字;old_library變量為靜態(tài)庫的名字。


libtool主要的一個作用是在編譯大型軟件的過程中解決了庫的依賴問題;將繁重的庫依賴關(guān)系的維護(hù)工作承擔(dān)下來,從而釋放了程序員的人力資源。通常libtool是配合GNU autoconf和automake一起使用。libtoo安裝l依賴于Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed。libtool提供統(tǒng)一的接口,通過libtool可以編譯生成lo、la文件;可以編譯連接構(gòu)建出庫和執(zhí)行程序。libtool通過la文件中記錄的依賴關(guān)系自動進(jìn)行整理出正確的編譯命令串,再調(diào)用C++編譯器進(jìn)行編譯連接。就是一個解析la文件--> 整理依賴關(guān)系 ---> 調(diào)用子進(jìn)程C編譯器的過程



(3)疑問

執(zhí)行autoconf遇到 possibly undefined macro: AM_INIT_AUTOMAKE

嘗試運(yùn)行: autoreconf --install


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI