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

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號
国产日韩一区二区三区在线播放| 国产精品久久久久久久小说| 国产精品兄妹在线观看麻豆| 亚洲精品偷拍视频免费观看| 亚洲欧美中文日韩视频| 国产精品无码av天天爽| 大香视频伊人精品75| 交换国产精品视频一区| 老子午夜精品无码| 99久久综合精品国产| 久久国产精品二区99| 日韩精品在线观看视频| 国产人妖乱国产精品人妖| 91精品在线播放| 99久久这里只有精品| 久久人搡人人玩人妻精品首页| 国产精品激情综合久久| 亚洲精品无码日韩国产不卡?V| 女人高潮内射99精品| 日韩a级一片在线观看| 国产精品日韩一区二区三区| 日韩高清在线观看永久| 日韩一级二级三级| 日韩精品免费视频| 日韩精品久久久久久久电影蜜臀| 日韩精品人妻一区二区中文八零| 国产日韩一区二区三区在线观看| 国产亚洲精品仙踪林在线播放| 国产精品嫩草影院免费| 国产精品自在线拍国产手青青机版 | 日韩成人无码影院| 国产成人久久精品亚洲小说| 国产成人精品免费直播 | 久久精品一区二区国产| 国内精品一级毛片免费看| 亚洲国产精品国自产拍AV| 久草精品视频在线播放| 亚洲国产综合91精品麻豆| 99这里只有精品| 亚洲一区精品视频在线| 91精品国产麻豆福利在线|