工程構建 linux 動態庫 靜態庫

2021-10-06 11:57:57 字數 672 閱讀 6788

一般指ar crv ***.a x1.o x2.o ... xn.o命令產生的.a檔案,其實就是把多個.o檔案打包成乙個.a檔案的過程,主要為了「方便呼叫」

當然,也可以不打包,那麼在使用的時候相對麻煩點:    

gcc 1.c x1.o x2.o ... xn.o -o 1
vs.

ar crv ***.a x1.o x2.o ... xn.o

gcc ***.a 1.c -o 1

生成與使用:

1) 準備 : 首先把想要打包的檔案編譯成.o , gcc -c x1.c x1.o 

2) 生成 : 然後把所有的.o檔案打包,生成.a , ar crv ***.a x1.o ... xn.o

3)使用1 : 在需要使用的地方,直接鏈結.a即可, gcc 1.c ***.a -o 1

使用2 : 編譯時指明靜態庫

以.so結尾的檔案,由.c檔案編譯而成,不同於靜態庫的ar命令,而是在gcc的時候生成

生成與使用:

1) 生成  : gcc -fpic -shared -o 1.so x1.c x2.c ... xn.c

2) 使用  : gcc -l-l

linux 靜態庫 動態庫

1.概念和區別 靜態庫就是在編譯過程中一些目標檔案的集合。靜態庫在程式鏈結的時候使用,鏈結器會將程式中使用到函式的 從庫檔案中拷貝到應用程式中。一旦鏈結完成,在執行程式的時候就不需要靜態庫了。由於每個使用靜態庫的應用程式都需要拷貝所用函式的 所以靜態鏈結的檔案會比較大。相對於靜態函式庫,動態函式庫在...

linux 靜態庫 動態庫

linux支援兩種庫的型別 靜態庫和動態庫 共享庫 1.linux靜態庫和動態庫的命名規則 靜態函式庫 lib a 動態函式庫 lib so 這些庫檔案都是由 o檔案生成的 動態庫 程式執行過程中進行連線。可執行檔案 庫檔案 靜態庫 編譯時進行連線。庫檔案 的複製貼上過程。程式執行時先檢查依賴的庫檔...

Linux動態庫,靜態庫

1.庫是什麼?庫是一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。就是將源 轉化為二進位制格式的源 相當於進行了加密,別人可以使用庫,但是看不到庫中的內容。2.靜態庫 靜態函式庫時在程式執行之前 編譯 就加入到目標程式中去了 linux中命名系統中靜態庫庫的規則 靜態庫檔名的命名方式是 l...