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