您好,登錄后才能下訂單哦!
(1)autoscan, automake, autoconf 之間的協(xié)作關(guān)系
(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
免責(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)容。