linux程式設計學習5 編寫靜態庫

2021-07-03 02:50:01 字數 1178 閱讀 8702

用乙個例子來闡述,列印函式print_a的實現在print_a.cpp檔案中,列印函式print_b的實現在print_b.cpp中,那麼要想把print_a和print_b函式編成靜態庫libprint.a,供自己或者其他使用者呼叫,應該按照以下步驟操作生成靜態庫libprint.a

1.將以下**儲存在print_a.cpp中

#include void print_a(const char *ch)
2.將以下**儲存在print_b.cpp中

#include void print_b(const char *ch)
3.執行g++ -c print_a.cpp print_b.cpp命令,生成print_a.o和print_b.o目標檔案

4.執行ar crv libprint.a print_a.o print_b.o,將print_a.o和print_b.o這兩個目標檔案歸併到libprint.a檔案中

5.將print_a和print_b函式的宣告儲存在print.h標頭檔案中

#ifndef print_h

#define print_h

void print_a(const char *ch);

void print_b(const char *ch);

#endif //print_h

6.程式或者其它模組只需要引用print.h檔案,即可呼叫到print_a.cpp和print_b.cpp檔案中實現的print_a和print_b函式了

test.cpp的原始碼如下:

#include "print.h"

int main(int argc, char *argv)

執行g++ -o test test.cpp libprint.a 編譯,鏈結,生成可執行檔案test,並執行如下

如何編寫靜態庫

1.使用vs2013建立普通的應用臺控制程式 2.在屬性裡選擇靜態庫 lib 編寫庫檔案 mylib.h pragam once int sum int a,int b include mylib.h 函式實現 int sum int a,int b 3.編譯,成功後會在目錄下生成.lib檔案4.使...

linux程式設計學習筆記(一)靜態庫與動態庫

庫分兩種 1 靜態庫 static library 字尾名.a,目標檔案的集合。所謂靜態的意思是 應用需要將庫拷貝。所謂拷貝是這樣的過程 在link時,聯結器根據程式所需的函式,將之拷貝到執行檔案,所以可執行檔案的大小會比使用動態庫大,且一旦完成連線,靜態庫即可刪除。生成和使用靜態庫的方法 g c ...

linux 靜態庫學習記錄

在linux下編譯用c編譯了乙個.a的靜態庫 在標頭檔案中包含了乙個結構體,和乙個函式 hello.c include void hello const char name hello.h ifndef hello h define hello h void hello const char nam...