Linux系統下靜態庫製作及使用

2021-06-18 22:00:24 字數 1173 閱讀 9365

1、建立靜態庫。

建立靜態庫的過程比較簡單,主要是使用ar命令。

(1)生成目標檔案。

見原始碼

(2)ar命令建立靜態庫。

見原始碼

2、使用靜態庫。

使用靜態庫有兩種方式。將庫檔案加入到庫搜尋路徑中或拷貝到當前目錄。原始碼中兩種方式均有說明。見原始碼。

原始檔結構如下: .

├── main.c

├── makefile

├── print_hello.c

└── print_hello.h

main.c 為測試程式原始碼

print_hello.*為庫標頭檔案和實現檔案

各檔案內容如下:

main.c檔案

#include "print_hello.h"

int main(int argc,char **argv)

print_hello.c檔案

#include "print_hello.h"

void print_hello()

print_hello.h檔案

#ifndef my_print_hello_h

#define my_print_hello_h

#include

void print_hello();

#endif

makefile檔案

cc=gcc

ar=ar

#這是將庫檔案路徑加入到庫搜尋路徑的方式

#main:main.c libprint_hello.a

#    $(cc) -o main main.c -l. -lprint_hello

#也可以使用以下語句編譯測試程式

#這是拷貝到當前目錄下的編譯方式

main:main.c libprint_hello.a

$(cc) -o main main.c libprint_hello.a

libprint_hello.a:print_hello.o

$(ar) -rc libprint_hello.a print_hello.o

print_hello.o:

$(cc) -c print_hello.c

clean:

rm -rf *~

rm -rf *.o *.a main

Linux下靜態庫 動態庫製作及gcc命令詳解

乙個c語言程式從編寫完成到執行需要經歷預處理 生成.i 編譯 生成.s 彙編 生成.o 鏈結 生成可執行檔案 幾個步驟,如下圖所示。這裡推薦一篇講解的比較全面的部落格 gcc常用引數詳解。我們最常用的gcc編譯選項主要有以下幾個 以下是幾篇講的比較好的部落格 靜態鏈結就是在執行之前講已經編譯好的靜態...

Linux下動態庫和靜態庫的製作及使用

在實際的開發過程中,編寫程式往往都需要依賴很多基礎的底層庫,比方說平時用的較多的標準c庫,數學庫等等 我們會頻繁的使用這些庫里的函式,這些函式大多數都是前人為我們寫好的,所以值得慶幸的是我們的工作不必從零開始,我們要做的只是在恰當的位置呼叫合適的庫函式去實現相應的功能,充分利用前人的勞動成果,就是 ...

Linux下製作動態庫與靜態庫

靜態函式庫 1.這類庫的名字一般是lib a 2.利用靜態函式庫編譯成的檔案比較大,因為整個函式庫的所有資料都會被整合進目標 中,他的優點就顯而易見了,即編譯後的執行程式不需要外部的函式庫支援,因為所有使用的函式都已經被編譯進可執行檔案了。當然這也會成為他的缺點,因為如果靜態函式庫改變了,那麼你的程...