c 靜態庫動態庫

2021-09-26 21:19:19 字數 756 閱讀 5678

靜態庫:

gcc -c a.cpp -o a.o

gcc -c b.cpp -o b.o

ar -rcs libmylib.a a.o b.o

使用庫:2種方式

1 gcc test.c -o test -l (指定庫路徑)-i(大寫i ,頭檔案目錄) -l (庫名字,去除前字尾)

2 將庫和標頭檔案拷貝到 /usr/lib下面   gcc test.c -o test -l (庫名字,去除前字尾)

動態庫:

gcc -c -fpic  a.cpp -o a.o

gcc -c -fpic  b.cpp -o b.o

gcc -shared a.o b.o -o  libmy.so

動態庫使用:

gcc test.c -o test -l    -l  -i

編譯可以過 ,執行會報錯,因為執行的時候(並不知道路徑)需要乙個絕對路徑。

所以可以如下操作:

方法1拷貝到/usr/lib下面(不推薦使用這種方式)

方法2 修改當前使用者下面的.bashrc (當前使用者登陸的時候會執行)

最後一行新增 export ld_library_path=$ld_library_path:/home/(路徑)

然後source .bashrc

方法三:

修改 /etc/ld.so.conf 配置檔案

新增/home/....(路徑名字)

再執行命令:sudo ldconfig -v 讓其生肖。

c 動態庫(一)靜態庫

靜態庫lib vs2005 一,建立乙個win32的lib專案,如下圖 二 新增兩個檔案libtest.h,libtest.cpp,如下 libtest.h ifndef lib h define lib h extern c int add int a,int b endif libtest.cp...

C動態庫 靜態庫基礎

一 基本概念 依據鏈結階段來分,庫有兩種 靜態庫 a lib 和動態庫 so dll 二者主要的不同點在於 被載入的時刻不同,靜態庫的 在編譯過程中已經被載入可執行程式,因此檔案較大 動態庫的 是在可執行程式執行時才載入記憶體的,在編譯過程中僅簡單的引用,因此 體積較小。二者的特點總結如下 靜態庫 ...

C 靜態庫與動態庫

感覺比較形象,就摘過來了.這次分享的 宗旨是 讓大家學會建立與使用靜態庫 動態庫,知道靜態庫與動態庫的區別,知道使用的時候如何選擇。這裡不深入介紹靜態庫 動態庫的底層格式,記憶體布局等,有興趣的同學,推薦一本書 程式設計師的自我修養 鏈結 裝載與庫 庫是寫好的現有的,成熟的,可以復用的 現實中每個程...