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