linux 庫的建立與使用

2021-06-06 02:42:17 字數 1759 閱讀 3716

linux 庫的概念

庫是一種軟體元件技術,庫裡面封裝了資料和函式,提供給使用者程式呼叫。庫的使用可以使程式模組化,提高程式的編譯速度,實現**重用,使程式易於公升級。

windows 系統本身提供並使用了大量的庫,包括靜態鏈結庫(.lib檔案)和動態鏈結庫(.dll檔案)。類似的,linux作業系統也使用庫。linux系統中,通常把庫檔案存放在/usr/lib或/lib目錄下。linux庫檔名由字首lib、庫名以及字尾3部分組成,其中動態庫以.so作為字尾,而靜態庫通常以.a作為字尾。

靜態庫的建立和使用

建立靜態庫的步驟如下:

(1)在乙個標頭檔案中宣告靜態庫所匯出的函式。

(2)在乙個原始檔中實現靜態庫所匯出的函式。

(3)編譯原始檔,生成可執行**。

(4)將可執行**所在的目標檔案加入到某個靜態庫中,並將靜態庫拷貝到系統預設的存放庫檔案的目錄下。

例項說明:

標頭檔案 mylib.h

#ifndef _mylib_h_

#define _mylib_h_

void welcome();

void outstring(const char* str);

#endif

原始檔 mylib.c

#include "mylib.h"

#include void welcome()

void outstring(const char* str)

編譯mylib.c 生成目標檔案:

[xyk@xyk linking]$ gcc -o mylib.o -c mylib.c

將目標檔案加入到靜態庫中,靜態庫為libmylib.a

[xyk@xyk linking]$ ar rcs libmylib.a mylib.o

將靜態庫拷貝到linux的庫目錄(/usr/lib 或/lib)下:

[root@xyk linking]# cp libmylib.a /usr/lib/libmylib.a

測試程式 test.c

#include #include "mylib.h"

int main()

編譯使用了庫函式的程式:

[xyk@xyk linking]$ gcc -o test test.c -lmylib

執行生成的可執行程式test:

[xyk@xyk linking]$ ./test

create and use library:

welcome to libmylib

it's successful

動態庫的建立與使用

在linux環境下,可以很方便的建立和使用動態鏈結庫。只要在編譯函式庫源程式時加上-shared選項即可,這樣生成的可執行程式就為動態鏈結庫。

例項說明:

[xyk@xyk linking]$ gcc -fpic -shared -o libttt.so mylib.c

將靜態庫拷貝到linux的庫目錄(/usr/lib 或/lib)下:

[xyk@xyk linking]$ gcc -o test test.c /usr/lib/libttt.so

執行程式test:

[xyk@xyk linking]$ ./test

create and use library:

welcome to libmylib

it's successful

linux下靜態庫與動態庫的建立與使用

目錄 一 庫的概念 二 庫的知識 三 靜態庫 1 特點 2 建立 3 使用 4 小結 三 共享庫 1 特點 2 建立 3 使用 4 如何找到共享庫 5 小結 1 庫是乙個原始碼編譯後的二進位制檔案,包含的 可被程式使用 2 庫的種類 標準c庫 資料庫 執行緒庫.4 庫的存放路徑 lib usr li...

庫的建立與使用

庫的建立與使用。一 靜態庫的建立與使用 建立乙個庫,含有加減乘除演算法 1 首先編寫演算法程式 如何進入多視窗模式 在底層模式下輸入sp,ctrl ww 游標視窗切換 ctrl wj 游標向下切換 ctrl wk 游標向上切換 2 編寫main函式 3 將加減乘除轉換為.o檔案 4 建立庫 注意 靜...

Linux動態鏈結庫的建立與使用

使用gnu的工具我們如何在linux下建立自己的程式函式庫?乙個 程式函式庫 簡單的說就是乙個檔案包含了一些編譯好的 和資料,這些編譯好的 和資料可以在事後供其他的程式使用。程式函式庫可以使整個程式更加模組化,更容易重新編譯,而且更方便公升級。libc.so.n n應該大於或者等於6 這是c語言函式...