您好,登錄后才能下訂單哦!
這篇文章主要介紹了linux中.a文件指的是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇linux中.a文件指的是什么文章都會有所收獲,下面我們一起來看看吧。
在linux中,“.a”文件是靜態鏈接庫文件;靜態鏈接庫文件是指要調用的函數或者過程鏈接到可執行文件中,成為可執行文件的一部分,動態鏈接所調用的函數代碼并沒有被拷貝到應用程序的可執行文件中去,而是在其中加入了所調用函數的描述信息。
本教程操作環境:linux7.3系統、Dell G3電腦。
.a文件,是LINUX系統中的靜態鏈接庫文件。
所謂靜態鏈接是指把要調用的函數或者過程鏈接到可執行文件中,成為可執行文件的一部分。當多個程序都調用相同函數時,內存中就會存在這個函數的多個拷貝,這樣就浪費了寶貴的內存資源。.so文件是共享庫文件(動態鏈接)。動態鏈接所調用的函數代碼并沒有被拷貝到應用程序的可執行文件中去,而是僅僅在其中加入了所調用函數的描述信息(往往是一些重定位信息),僅當應用程序被裝入內存開始運行時,在操作系統的管理下,才在應用程序與相應的.so之間建立鏈接關系。
.a文件是多個.o文件的組合。.o文件就是對象文件,里面包含的內容就是01這樣的機器可執行的指令,當程序要執行時還需要進行鏈接(link).鏈接就是把多個.o文件鏈成一個可執行文件。
擴展知識
.o 就是object, 也就相當于windows下編譯的obj文件, 俗稱目標文件.
.a 就是archive, 也就相當于windows的VC下編譯的lib文件, 俗稱靜態庫文件.
.o文件是鏈接文件,.a是靜態庫文件,靠.o文件生成,作為一個庫為外部程序提供函數,接口。
生成.o文件:
gcc -c test.o test.c
生成.a文件:
ar cqs test.a test.o
.o 就相當于windows里的obj文件 ,一個.c或.cpp文件對應一個.o文件
.a 是好多個.o合在一起,用于靜態連接 ,即STATIC mode,多個.a可以鏈接生成一個exe的可執行文件
.so 是shared object,用于動態連接的,和windows的dll差不多,使用時才載入
關于“linux中.a文件指的是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“linux中.a文件指的是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。