Linux下的靜態庫與動態庫

2021-08-20 08:51:56 字數 938 閱讀 9455

準備三個檔案 time.c time.h test.c。

函式庫的標頭檔案

#ifndef __time_h_

#define __time_h_

#includevoid time();

#endif //__time_h_

函式庫的源程式,包含時間列印函式

#include"time.h"

void time()

測試函式,呼叫了時間列印函式time

#include"time.h"

int main()

gcc -o time.c
/usr/bin/ld: cannot find lc

yum install glibc-static
ar cr libmytime.a time.o
gcc -o test test.c -static -lmytime -l.
-lmytime:鏈結靜態庫mytime

-l. :鏈結時需指明靜態庫所存在的路徑,『.』表示當前路徑

./test
gcc -shared -fpci -o libmytime.so time.o
gcc -o test test.c -lmytime -l.
./test
mv libmytime.so /usr/lib
動態鏈結 

Linux下的靜態庫與動態庫

1 生成.so g test.cpp fpic shared o libtest.so 2 使用.so g l.ltest main.cpp 在使用.so的時候如果找不到.so需要把.so的路徑加到 etc ld.so.conf ldconfig使之生效 ldd 可以檢視main中是否包含了.so。...

Linux下的靜態庫與動態庫

在windows和linux下都存在著大量的庫,庫是什麼呢?本質上來說,庫時一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。我們通常將一些公用函式寫成函式庫,所以庫是別人寫好的,現有的,成熟的,可以服用的 你可以使用但要必須得遵守許可協議。在我們現實開發過程中,不可能每乙份 都從頭編寫,當...

linux下建立靜態庫與動態庫

靜態庫 編寫好c原始檔,裡面只有函式的實現。要呼叫的檔案比如是main.c,在檔案裡宣告c原始檔裡的庫函式名。1 首先 gcc c hello.c 生成hello.o 2 ar crs libhello.a hello.o 3 gcc o main main.c l.lhello l後面跟著庫的路徑...