linux系統的庫檔案的建立和鏈結

2021-07-30 11:31:39 字數 1081 閱讀 7578

建立目錄及檔案結構如下:

├── 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...