1、動態鏈結庫的製作
動態鏈結庫與普通的程式相比,沒有main函式。 通過 -shared 和 -fpic 編譯引數產生 .so 動態鏈結庫檔案。程式在呼叫庫函式時
只要鏈結上這個庫即可。
1)編寫動態庫**
定義標頭檔案reader.h
#ifndef reader_h_#define reader_h_
int open(char *name);
int close(char *name);
#endif
//reader_h_
編寫函式體reader.c
#include int open(char *name)int close(char *name)
2)生成動態庫檔案
$ gcc -shared -fpic reader.c -o libreader.so
2、動態庫的使用
第一步:編寫測試**testlib.c
#include "reader.h
"int
main()
第二步:呼叫動態庫 (-l 指明動態鏈結庫的路徑)
$ gcc testlib.c -o testlib -l ./ -lreader
第三步:測試輸出
81reader opened.81reader closed.
Linux下動態庫和靜態庫的製作及使用
在實際的開發過程中,編寫程式往往都需要依賴很多基礎的底層庫,比方說平時用的較多的標準c庫,數學庫等等 我們會頻繁的使用這些庫里的函式,這些函式大多數都是前人為我們寫好的,所以值得慶幸的是我們的工作不必從零開始,我們要做的只是在恰當的位置呼叫合適的庫函式去實現相應的功能,充分利用前人的勞動成果,就是 ...
Linux靜態庫與動態庫製作及使用
一 二者區別 1 靜態庫是在程式執行前就加入到目標程式中去 動態庫程式執行的過程動態的由目標程式去呼叫 2 靜態庫對空間要求不高,對時間要求高 動態庫對時間要求不高,對空間要求高 二 庫製作 同一目錄下有三個檔案 主 hellomain.c 頭 hellomain.h功能 hellofunc.c 1...
Linux下靜態庫 動態庫製作及gcc命令詳解
乙個c語言程式從編寫完成到執行需要經歷預處理 生成.i 編譯 生成.s 彙編 生成.o 鏈結 生成可執行檔案 幾個步驟,如下圖所示。這裡推薦一篇講解的比較全面的部落格 gcc常用引數詳解。我們最常用的gcc編譯選項主要有以下幾個 以下是幾篇講的比較好的部落格 靜態鏈結就是在執行之前講已經編譯好的靜態...