GCC 編譯 靜態庫 動態庫

2021-10-10 21:13:22 字數 709 閱讀 7403

工作流程

命名格式

lib+庫的名字+.so製作

第一步:得到*.o檔案

# 引數-fpic表示生成與位置無關**

gcc -i./include -fpic *.c -c

第二步:建立動態庫

# -shared 製作動態庫

# -o 重新命名生成的新檔案

gcc -shared -o lib***.so *.o

使用

命名格式

lib+庫的名字+.a製作

第一步:得到*.o檔案

gcc -i./include *.c -c
第二步:建立靜態庫

# 將所有 .o 檔案打包為靜態庫

# r 將檔案插入靜態庫中

# c 建立靜態庫,不管庫是否存在

# s 寫入乙個目標檔案索引到庫中,或者更新乙個存在的目標檔案索引。

ar rcs lib***.a *.o

# 檢視庫中包含的函式等資訊

nm lib***.a

使用

gcc編譯靜態庫 動態庫

今天,乙個同事編譯靜態庫,我也趁此機會在溫習一下,先google一下,然後在自己實驗。首先,在網上抄個例子,內容如下 建靜態庫 hellos.h ifndef hello s h define hello s h void prints char str endif hellos.c include...

gcc編譯使用靜態庫 動態庫

假設已經有可用的liboutprint.a和liboutprint.so.1.0.0可用,則 gcc o hello static l.loutprint hello.cpp gcc o hello l.loutprint hello.cpp export ld library path pwd n...

gcc編譯靜態庫和動態庫

一 動態鏈結庫 1.建立hello.so動態庫 cpp view plain copy print?include voidhello 編譯 gcc fpic shared hello.c o libhello.so include void hello 編譯 gcc fpic shared hel...