日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题

發(fā)布時(shí)間:2025/4/16 linux 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

態(tài)庫(kù)./libpos.so、 /root/test/env/lib/libpos.so和/root/test/conf/lib/libpos.so。我們?cè)儆迷闯绦?pos_lib.c(見(jiàn)程序5)來(lái)創(chuàng)建動(dòng)態(tài)庫(kù)/lib/libpos.so,用源程序pos_usrlib.c(見(jiàn)程序6)來(lái)創(chuàng)建動(dòng)態(tài)庫(kù) /usr/lib/libpos.so。

#include

void pos()

{

printf("/lib\n");

}

程序5: pos_lib.c

#include

void pos()

{

printf("/usr/lib\n");

}

程序6: pos_usrlib.c

這 樣我們得到五個(gè)動(dòng)態(tài)庫(kù)libpos.so,這些動(dòng)態(tài)庫(kù)的名字相同,且都包含相同函數(shù)原型 的公用函數(shù)pos。但存儲(chǔ)的位置不同和公用函數(shù)pos 打印的結(jié)果不同。每個(gè)動(dòng)態(tài)庫(kù)中的公用函數(shù)pos都輸出該動(dòng)態(tài)庫(kù)所存放的位置。這樣我們可以通過(guò)執(zhí)行例3中的可執(zhí)行文件pos得到的結(jié)果不同獲知其搜索到了 哪個(gè)動(dòng)態(tài)庫(kù),從而獲得第1個(gè)動(dòng)態(tài)庫(kù)搜索順序,然后刪除該動(dòng)態(tài)庫(kù),再執(zhí)行程序pos,獲得第2個(gè)動(dòng)態(tài)庫(kù)搜索路徑,再刪除第2個(gè)被搜索到的動(dòng)態(tài)庫(kù),如此往復(fù), 將可得到Linux搜索動(dòng)態(tài)庫(kù)的先后順序。程序pos執(zhí)行的輸出結(jié)果和搜索到的動(dòng)態(tài)庫(kù)的對(duì)應(yīng)關(guān)系如表1所示:

程序pos輸出結(jié)果

使用的動(dòng)態(tài)庫(kù)

對(duì)應(yīng)的動(dòng)態(tài)庫(kù)搜索路徑指定方式

./

./libpos.so

編譯目標(biāo)代碼時(shí)指定的動(dòng)態(tài)庫(kù)搜索路徑

/root/test/env/lib

/root/test/env/lib/libpos.so

環(huán)境變量LD_LIBRARY_PATH指定的動(dòng)態(tài)庫(kù)搜索路徑

/root/test/conf/lib

/root/test/conf/lib/libpos.so

配置文件/etc/ld.so.conf中指定的動(dòng)態(tài)庫(kù)搜索路徑

/lib

/lib/libpos.so

默認(rèn)的動(dòng)態(tài)庫(kù)搜索路徑/lib

/usr/lib

/usr/lib/libpos.so

默認(rèn)的動(dòng)態(tài)庫(kù)搜索路徑/usr/lib

表1: 程序pos輸出結(jié)果和動(dòng)態(tài)庫(kù)的對(duì)應(yīng)關(guān)系

創(chuàng)建各個(gè)動(dòng)態(tài)庫(kù),并放置在相應(yīng)的目錄中。測(cè)試環(huán)境就準(zhǔn)備好了。執(zhí)行程序pos,并在該命令行中設(shè)置環(huán)境變量LD_LIBRARY_PATH。

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

./

#

根據(jù)程序pos的輸出結(jié)果可知,最先搜索的是編譯目標(biāo)代碼時(shí)指定的動(dòng)態(tài)庫(kù)搜索路徑。然后我們把動(dòng)態(tài)庫(kù)./libpos.so刪除了,再運(yùn)行上述命令試試。

# rm libpos.so

rm: remove regular file `libpos.so'? y

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

/root/test/env/lib

#

根據(jù)程序pos的輸出結(jié)果可知,第2個(gè)動(dòng)態(tài)庫(kù)搜索的路徑是環(huán)境變量LD_LIBRARY_PATH指定的。我們?cè)侔?root/test/env/lib/libpos.so刪除,運(yùn)行上述命令。

# rm /root/test/env/lib/libpos.so

rm: remove regular file `/root/test/env/lib/libpos.so'? y

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

/root/test/conf/lib

#

第3個(gè)動(dòng)態(tài)庫(kù)的搜索路徑是配置文件/etc/ld.so.conf指定的路徑。刪除動(dòng)態(tài)庫(kù)/root/test/conf/lib/libpos.so后再運(yùn)行上述命令。

# rm /root/test/conf/lib/libpos.so

rm: remove regular file `/root/test/conf/lib/libpos.so

總結(jié)

以上是生活随笔為你收集整理的linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。