日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

linux中la是什么文件

發布時間:2023/12/19 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 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命令行。

相關推薦:《Linux視頻教程》

以上就是linux中la是什么文件的詳細內容,更多請關注風君子博客其它相關文章!

總結

以上是生活随笔為你收集整理的linux中la是什么文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。