gcc建立,使用靜態庫

2021-06-20 16:12:07 字數 983 閱讀 3218

靜態庫是一些目標**的集合.linux環境下的靜態庫目標檔案一般以.a作為目標檔案的副檔名.linux環境下使用ar命令建立乙個靜態庫.靜態庫的優點在於使用簡單,編譯快速.靜態庫在應用程式生成時,已經編譯成為可重定位的目標檔案,因此可以不必再編譯,節省編譯時間,以最短的時間生成可執行程式.

假定有檔案static_lib.c,內容如下:

int add(int a , int b) 

int sub(int a , int b)

int mul(int a , int b)

int div(int a , int b)

用下面命令編譯,生成乙個可重定位的目標檔案,命令如下:

gcc -c static_lib.c

再使用以下命令建立靜態庫:

ar rcs static_lib.a static_lib.o

其中ar是建立靜態庫的命令,rcs是3個引數.r表示把列表中的目標檔案加入到靜態庫中;c表示若指定庫不存在,則建立該庫檔案;s表示更新靜態庫檔案的索引,使之包含新加入的目標檔案的內容.

使用靜態為時要編寫乙個標頭檔案static_lib.h內容如下所示:

extern int add(int a, int b);

extern int sub(int a, int b);

extern int mul(int a, int b);

extern int div(int a, int b);

主函式main.c內容如下所示:

#include #include "static_lib.h"

int main()

使用-static選項對靜態庫進行引用,整個命令如下所示:

gcc建立和使用靜態庫 動態庫

gcc建立和使用靜態庫 動態庫 下面以工程libtest為例說明gcc 建立和使用 靜態庫 動態庫的過程,libtest目錄結構和內容如圖1所示,其中三個檔案hello.h,hello.c和main.c的內容如下。libtest include hello.h ifdef hello h defin...

gcc建立和使用靜態庫 動態庫

下面以工程libtest為例說明gcc建立和使用靜態庫 動態庫的過程,libtest目錄結構和內容如圖1所示,其中三個檔案hello.h,hello.c和main.c的內容如下。圖1libtest include hello.h ifdef hello h define hello h void h...

gcc建立,使用動態庫

動態庫在程式啟動時被裝載。在linux下一般是.so檔案。當乙個應用程式裝載了乙個動態庫後,其它應用程式仍可以裝載同乙個動態庫。這個被多程序同時使用的動態庫在記憶體中只有乙個副本。下面演示如何建立,使用動態庫 原始檔share lib.c內容如下 include void print1 void p...