linux 開發 Linux 載入使用動態庫例項

2021-06-21 22:22:41 字數 750 閱讀 3441

動態載入庫

在linux中可以動態載入庫,其使用方法如下:

1. 先生成乙個動態庫libtest.so

/* test.c */

#include

#include

void test1(int no)

void test2(char *str)

編譯庫:

gcc -fpic -shared -o libtest.so test.c

這樣就可以生成libtest.so動態庫。

在這個庫里,定義個兩個函式test1,test2,下面將在程式中載入libtest.so,然後呼叫test1,test2。

2. 動態載入libtest.so

/* main.c */

#include

#include

#include

#include

#include /* 必須加這個標頭檔案 */

#include

int main()

/* end */

在這個程式中,dlopen函式用來開啟乙個動態庫,其返回乙個void *的指標,如果失敗,返回null。

dlsym返回乙個動態庫中的乙個函式指標,如果失敗,返回null。

dlclose關閉指向動態庫的指標。

編譯的時候需要加上 -ldl

gcc -o main main.c -ldl

執行main,將會看到呼叫test1,和test2的結果。

linux 載入hello模組

1 hello 1.c hello 1.c the st kernel module.include needed by all modules include needed for kern alert int init module void void cleanup module void 2...

linux驅動載入順序

研究mx53開發板上sgtl5000的音訊驅動時,發現有sgtl5000 i2c driver和 imx 3stack sgtl5000 audio driver兩個驅動,前面的驅動總是在前面執行,但是好像二者都是用的module init,那麼是什麼地方決定了它的執行順序呢?找到makefile內...

Linux載入流程筆記

bios,啟動自我測試與 mbr 我們必須要以乙個啟動管理程式來處理核心檔案載入 load 的問題,因此這個啟動管理程式就被稱為 boot loader 了。那這個boot loader 程式安裝在 呢?就在啟動裝置的第乙個磁區 sector 內,也就是我們一直談到的 mbr master boot...