日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

態(tài)庫./libpos.so、 /root/test/env/lib/libpos.so和/root/test/conf/lib/libpos.so。我們?cè)儆迷闯绦?pos_lib.c(見程序5)來創(chuàng)建動(dòng)態(tài)庫/lib/libpos.so,用源程序pos_usrlib.c(見程序6)來創(chuàng)建動(dòng)態(tài)庫 /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)庫libpos.so,這些動(dòng)態(tài)庫的名字相同,且都包含相同函數(shù)原型 的公用函數(shù)pos。但存儲(chǔ)的位置不同和公用函數(shù)pos 打印的結(jié)果不同。每個(gè)動(dòng)態(tài)庫中的公用函數(shù)pos都輸出該動(dòng)態(tài)庫所存放的位置。這樣我們可以通過執(zhí)行例3中的可執(zhí)行文件pos得到的結(jié)果不同獲知其搜索到了 哪個(gè)動(dòng)態(tài)庫,從而獲得第1個(gè)動(dòng)態(tài)庫搜索順序,然后刪除該動(dòng)態(tài)庫,再執(zhí)行程序pos,獲得第2個(gè)動(dòng)態(tài)庫搜索路徑,再刪除第2個(gè)被搜索到的動(dòng)態(tài)庫,如此往復(fù), 將可得到Linux搜索動(dòng)態(tài)庫的先后順序。程序pos執(zhí)行的輸出結(jié)果和搜索到的動(dòng)態(tài)庫的對(duì)應(yīng)關(guān)系如表1所示:

程序pos輸出結(jié)果

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

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

./

./libpos.so

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

/root/test/env/lib

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

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

/root/test/conf/lib

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

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

/lib

/lib/libpos.so

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

/usr/lib

/usr/lib/libpos.so

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

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

創(chuàng)建各個(gè)動(dòng)態(tài)庫,并放置在相應(yīng)的目錄中。測試環(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)庫搜索路徑。然后我們把動(dòng)態(tài)庫./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)庫搜索的路徑是環(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)庫的搜索路徑是配置文件/etc/ld.so.conf指定的路徑。刪除動(dòng)態(tài)庫/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编译中关于头文件与库文件搜索路径相关问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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