站長資訊網
最全最豐富的資訊網站

linux中la是什么文件

在linux中,la是使用libtool編譯出的庫文件,是記錄同名動態庫和靜態庫相關信息的文本文件;該文件是通過libtool保存在平臺之間的唯一文件。libtool是一個通用庫支持腳本,只與后綴名為lo、la的libtool文件打交道。

linux中la是什么文件

本教程操作環境:linux7.3系統、Dell G3電腦。

linux中la是什么文件

la: 使用libtool編譯出的庫文件,其實是個文本文件,記錄同名動態庫和靜態庫的相關信息

libtool的工作原理

libtool 是一個通用庫支持腳本,將使用動態庫的復雜性隱藏在統一、可移植的接口中;使用libtool的標準方法,可以在不同平臺上創建并調用動態庫。可以認為libtool是gcc的一個抽象,其包裝了gcc(或者其他的編譯器),用戶無需知道細節,只要告訴libtool需要編譯哪些庫即可,libtool將處理庫的依賴等細節。libtool只與后綴名為lo、la為的libtool文件打交道。

擴展知識:

linux下的so、o、lo、a、la文件有什么區別?

  • o: 編譯的目標文件

  • a: 靜態庫,其實就是把若干o文件打了個包

  • so: 動態鏈接庫(共享庫)

  • lo: 使用libtool編譯出的目標文件,其實就是在o文件中添加了一些信息

libtool主要的一個作用是在編譯大型軟件的過程中解決了庫的依賴問題;將繁重的庫依賴關系的維護工作承擔下來,從而釋放了程序員的人力資源。libtool提供統一的接口,隱藏了不同平臺間庫的名稱的差異等細節,生成一個抽象的后綴名為la高層庫libxx.la(其實是個文本文件),并將該庫對其它庫的依賴關系,都寫在該la的文件中。該文件中的dependency_libs記錄該庫依賴的所有庫(其中有些是以.la文件的形式加入的);libdir則指出了庫的安裝位置;library_names記錄了共享庫的名字;old_library記錄了靜態庫的名字。

當編譯過程到link階段的時候,如果有下面的命令:

$libtool --mode=link gcc -o myprog -rpath /usr/lib –L/usr/lib –la

libtool會到/usr/lib路徑下去尋找liba.la,然后從中讀取實際的共享庫的名字(library_names中記錄了該名字,比如liba.so)和路徑(lib_dir中記錄了,比如libdir=’/usr/lib’),返回諸如/usr/lib/liba.so的參數給激發出的gcc命令行。

如果liba.so依賴于庫/usr/lib/libb.so,則在liba.la中將會有dependency_libs=’-L/usr/lib -lb’或者dependency_libs=’/usr/lib/libb.la’的行,如果是前者,其將直接把“-L/usr/lib –lb”當作參數傳給gcc命令行;如果是后者,libtool將從/usr/lib/libb.la中讀取實際的libb.so的庫名稱和路徑,然后組合成參數“/usr/lib/libb.so”傳遞給gcc命令行。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
成人国产精品一区二区网站| 国产精品视频一区麻豆| 亚洲欧洲国产成人精品| 91精品国产自产在线老师啪| 精品无人区麻豆乱码1区2区| 国产精品99亚发布| 青青精品视频国产| 一本一本久久a久久精品综合麻豆| 亚洲综合精品第一页| 久久国产精品61947| 窝窝午夜色视频国产精品东北| 免费a级毛片18以上观看精品| 国内精品人妻无码久久久影院 | 九九精品免费视频| 久久精品国产亚洲av高清漫画| 91在线视频精品| freesexvideos精品老师毛多| 国产精品国三级国产AV| 亚洲国产成人精品无码区在线秒播| 国产三级久久久精品麻豆三级| 无码国产亚洲日韩国精品视频一区二区三区 | 日韩亚洲人成在线综合日本| 久久久久国产日韩精品网站| 日韩免费无砖专区2020狼| 日韩午夜理论免费TV影院| 国产免费无遮挡精品视频| 亚洲精品无码久久久久牙蜜区| 亚洲欧洲国产精品你懂的| 在线观看日韩一区| 视频久re精品在线观看| 小呦精品导航网站| 精品国产丝袜自在线拍国| 欧洲精品一区二区三区| 日韩精品一区二区三区毛片| 国产精品视频视频久久| 国产成品精品午夜视频| 精品久久久久久中文字幕无码 | 久久99精品国产| 精品一区二区久久久久久久网站| 亚洲?V乱码久久精品蜜桃 | 久久亚洲精品无码gv|