靜態庫libxx.a 對應 win下面的xx.lib
防止別人看到**
nm
檢視靜態庫內容
假設有以下檔案
|-- fn
| |-- add.c
| `-- sub.c
|-- h
| `-- head.h
|-- lib
`-- test.c
add.c內容
int
add(
int a,
int b)
sub.c內容
int
sub(
int a,
int b)
test.c內容
#include
"head.h"
intmain
(void
)
head.h內容
#include
extern
intadd
(int a,
int b)
;extern
intsub
(int a,
int b)
;
首先編譯fn
目錄下的函式檔案
gcc -c ./fn/*.c -i ./h
將編譯好的.o
檔案,打包成靜態庫,靜態庫命名必須以lib開頭以.a結尾
ar rcs ./lib/libcalc.a *.o
編譯整個工程檔案,預設gcc會找標準庫,自己的庫需要指明,_l
指定庫的目錄,-l
指定庫的名稱.庫名會省略掉lib
和.a
gcc test.c -o test -i h/ -l lib/ -l calc
GCC靜態庫 動態庫
1 靜態庫 linux環境下的靜態庫的擴充套件名為 a step 1 編譯原始檔,生成可重定位目標檔案 gcc c static lib.c step 2 使用ar工具建立乙個靜態庫,或者將目標檔案加入到乙個已經存在的靜態庫中。格式 ar rcs 靜態庫名 目標檔案2 目標檔案2 目標檔案n ar ...
gcc 靜態庫和動態庫
include void print hello include include hello.h int main define hello 9999 void print hello 其中 hello.c 和 main.c 在同乙個目錄下,hello.h在上乙個目錄。先生成 o 檔案 gcc he...
gcc編譯靜態庫 動態庫
今天,乙個同事編譯靜態庫,我也趁此機會在溫習一下,先google一下,然後在自己實驗。首先,在網上抄個例子,內容如下 建靜態庫 hellos.h ifndef hello s h define hello s h void prints char str endif hellos.c include...