動(dòng)態(tài)庫(kù)
新建 mylib.c 文件
#include< stdio.h >
void mylib(void);
void mylib(void)
{
printf("This is mylibn");
}
在 Ubuntu 編譯
編寫測(cè)試代碼 test.c
#include < stdio.h >
void mylib(void);
int main(void)
{
mylib();
return 0;
}
編譯測(cè)試文件 test.c
-l:指定動(dòng)態(tài)庫(kù)的庫(kù)名
-L:指定動(dòng)態(tài)庫(kù)的查找位置。
-L . 表示在當(dāng)前目錄下去查找
運(yùn)行測(cè)試 a.out
在動(dòng)態(tài)庫(kù)使用是,系統(tǒng)會(huì)默認(rèn)去/lib,/usr/lib 目錄下去查找動(dòng)態(tài)函數(shù)庫(kù),如果我們使用的庫(kù)不在里面,就會(huì)提示錯(cuò)誤。解決這個(gè)問(wèn)題有三種方法。
第一種方法:
將生成的動(dòng)態(tài)庫(kù)拷貝到/lib 或者/usr/lib 里面去,因?yàn)橄到y(tǒng)會(huì)默認(rèn)去這兩個(gè)路徑下尋找。
第二種方法:
把我們的動(dòng)態(tài)庫(kù)所在的路徑加到環(huán)境變量里面去,比如我們動(dòng)態(tài)庫(kù)所在的路徑為/home/test,我們就可以這樣添加,但是這種方法只在當(dāng)前設(shè)置的窗口有效。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/topeet/debug/linux_
我們加入環(huán)境后,運(yùn)行 a.out
第三種方法:
修改 ubuntu 下的配置文件/etc/ld.so.conf,我們?cè)谶@個(gè)配置文件里面加入動(dòng)態(tài)庫(kù)所在的位置,然后使用命令 ldconfig 更新目錄。
我們輸入以下命令編輯/etc/ld.so.conf 文件,如下圖所示:
修改完文件保存退出,輸入 ldconfig 更新目錄。運(yùn)行測(cè)試如下圖所示:
-
Linux
+關(guān)注
關(guān)注
87文章
11512瀏覽量
213902 -
文件
+關(guān)注
關(guān)注
1文章
580瀏覽量
25378 -
動(dòng)態(tài)庫(kù)
+關(guān)注
關(guān)注
0文章
17瀏覽量
6355
發(fā)布評(píng)論請(qǐng)先 登錄
Linux動(dòng)態(tài)鏈接庫(kù)的基本概念
Linux下動(dòng)態(tài)庫(kù)相關(guān)知識(shí)

Linux下靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的制作與使用
Linux系統(tǒng)共享庫(kù)編程
C++中動(dòng)態(tài)鏈接庫(kù)的創(chuàng)建和調(diào)用
深入分析Windows和Linux動(dòng)態(tài)庫(kù)應(yīng)用異同
Linux下靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)(共享庫(kù))的制作與使用
linux靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)分析
你知道Linux動(dòng)態(tài)鏈接庫(kù)的創(chuàng)建與使用?
Linux下的靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)和動(dòng)態(tài)加載庫(kù)
講解Linux虛擬機(jī)之使用動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)

嵌入式Linux下動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)使用

Linux開(kāi)發(fā)_動(dòng)態(tài)靜態(tài)庫(kù)創(chuàng)建與Makefile規(guī)則
Linux下的靜態(tài)鏈接庫(kù)和動(dòng)態(tài)鏈接庫(kù)的區(qū)別是什么?

評(píng)論