Linux 下的靜態(函式)庫 動態(函式)庫

2021-08-07 17:16:37 字數 894 閱讀 1317

# 不用指定生成.o檔名(預設生成file1.o, file2.o, file3.o)。

$ ar rv libname.a file1.o file2.o file3.o
r : 將flie1.o, file2,o, file3.o插入archive,如故原先archive中已經存在某檔案,則先將該檔案刪除。

v : 顯示ar操作的附加資訊

動態庫:

$ gcc -wall -c -fpic file1.c file2.c file3.c

# 可選引數

# -g:生成除錯資訊,供 gdb 使用

# -o0:指定編譯優化級別

fpic: 指定生成的.o目標檔案可被重定址. pic是position idependent code的縮寫: 位置無關**.

$ gcc -shared -o libname.so file1.o file2.o file3.o
一般地, 聯結器使用main()函式作為程式入口. 但在動態共享庫中沒有這樣的入口. 所以就要指定-shared選項來避免編譯器顯示出錯資訊.

$ gcc -wall

-shared

-fpic

-o libname so file1.c file2.c file3.c

Linux的靜態函式庫和動態函式庫

一 在linux中,有兩種函式庫,以 so字尾命名的是動態函式庫,以 a字尾命名的是靜態函式庫 二 靜態函式庫 1 靜態函式庫是多個目標檔案 o的集合 2 可以使用ar命令 archiver 來生成.a檔案 gcc c part a.c gcc c part b.c ar r libtest.a p...

Linux應用開發 靜態函式庫和動態函式庫

什麼叫庫?就是一些函式經過一定的操作生成的可執行的二進位制檔案,能夠被外部呼叫使用封裝的函式。linux應用程式所使用的主要函式庫均存放於 lib和 usr lib目錄下,其中以 so方式命名的是動態函式庫,以 a命令的是靜態函式庫,linux下進行鏈結時預設使用動態函式庫,如果想要使用靜態函式庫時...

靜態函式庫與動態函式庫的設計

函式庫存放位置 linux應用程式使用的主要函式均放在 lib和 usr lib目錄下,其中採用 so.命名的是動態函式庫,而以 a方式命名的是靜態函式庫。靜態函式庫的特點 程式所要用到的庫函式 在鏈結時全部被copy到程式中。導致的問題 如果有多個程序在記憶體中同時執行,並且使用了相同的函式庫,那...