用乙個例子來闡述,列印函式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...