建立目錄及檔案結構如下:
├── include
│ └── hello.h
├── lib
│ └── hello.c
└── src
└── main.c
其中:原始檔hello.h:
#include void hello()
標頭檔案:
#ifndef _hello_h_
#define _hello_h_
void hello();
#endif
main.c檔案:
#include "hello.h"
int main()
編譯靜態庫函式:
cd src
gcc -c hello.c
ar -rc libhello.a hello.o
ar命令將hello.o新增到靜態庫檔案libhello.a,ar命令就是用來建立、修改庫的,也可以從庫中提出單個模組,引數r表示在庫中插入或者替換模組,c表示建立乙個庫
gcc main.c -o hello -l../lib -lhello -i../include
建立動態庫:
gcc -o libhello.so hello.c -shared -fpic -i../include
gcc main.c -o hello -l../lib -lhello -i../include
設定環境變數:
export ld_library_path=../lib
執行:
./hello
輸出:
hello world!
linux 動態庫的建立和使用
動態庫相比動態庫有以下優點 由於不用靜態連線到使用庫的每個程式中,使用動態庫更節省記憶體 公升級方便,公升級動態庫,可以不用重新編譯使用庫的程式 注意 在x86架構下,使用動態庫可能降低效能。中的程式清單,只不過這次我們不生成靜態庫,而是生成動態庫。同時為了方便我們使用makefile檔案。plai...
linux 靜態庫的建立和使用
linux和windows一樣也有自己的庫檔案,這樣可以使程式模組化。windows系統包括靜態鏈結庫 x.lib檔案 和動態鏈結庫 x.dll檔案 linux 庫檔案包括靜態庫檔案 lib x.a檔案 和動態鏈結庫 x.so檔案 本文重點介紹linux系統中的庫檔案的建立與使用 在linux系統中...
Linux 靜態庫的建立和使用
一 linux中靜態庫的建立和使用 靜態庫標頭檔案 say hello.h ifndef say hello define say hello void say hello endif 靜態庫源 檔案 say hello.cpp include say hello.h include using s...