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語言函式...