linux中.a是什么文件
在Linux中,“.a”文件是靜態(tài)鏈接庫文件;靜態(tài)鏈接庫文件是指要調(diào)用的函數(shù)或者過程鏈接到可執(zhí)行文件中,成為可執(zhí)行文件的一部分,動(dòng)態(tài)鏈接所調(diào)用的函數(shù)代碼并沒有被拷貝到應(yīng)用程序的可執(zhí)行文件中去,而是在其中加入了所調(diào)用函數(shù)的描述信息。
程序員必備接口測(cè)試調(diào)試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測(cè)試工具
后端、前端、測(cè)試,同時(shí)在線協(xié)作,內(nèi)容實(shí)時(shí)同步
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux中.a是什么文件
.a文件,是LINUX系統(tǒng)中的靜態(tài)鏈接庫文件。
所謂靜態(tài)鏈接是指把要調(diào)用的函數(shù)或者過程鏈接到可執(zhí)行文件中,成為可執(zhí)行文件的一部分。當(dāng)多個(gè)程序都調(diào)用相同函數(shù)時(shí),內(nèi)存中就會(huì)存在這個(gè)函數(shù)的多個(gè)拷貝,這樣就浪費(fèi)了寶貴的內(nèi)存資源。.so文件是共享庫文件(動(dòng)態(tài)鏈接)。動(dòng)態(tài)鏈接所調(diào)用的函數(shù)代碼并沒有被拷貝到應(yīng)用程序的可執(zhí)行文件中去,而是僅僅在其中加入了所調(diào)用函數(shù)的描述信息(往往是一些重定位信息),僅當(dāng)應(yīng)用程序被裝入內(nèi)存開始運(yùn)行時(shí),在操作系統(tǒng)的管理下,才在應(yīng)用程序與相應(yīng)的.so之間建立鏈接關(guān)系。
.a文件是多個(gè).o文件的組合。.o文件就是對(duì)象文件,里面包含的內(nèi)容就是01這樣的機(jī)器可執(zhí)行的指令,當(dāng)程序要執(zhí)行時(shí)還需要進(jìn)行鏈接(link).鏈接就是把多個(gè).o文件鏈成一個(gè)可執(zhí)行文件。
擴(kuò)展知識(shí)
.o 就是object, 也就相當(dāng)于windows下編譯的obj文件, 俗稱目標(biāo)文件.
.a 就是archive, 也就相當(dāng)于windows的VC下編譯的lib文件, 俗稱靜態(tài)庫文件.
.o文件是鏈接文件,.a是靜態(tài)庫文件,靠.o文件生成,作為一個(gè)庫為外部程序提供函數(shù),接口。
生成.o文件:
gcc -c test.o test.c
登錄后復(fù)制
生成.a文件:
ar cqs test.a test.o
登錄后復(fù)制