新聞中心
動(dòng)態(tài)鏈接庫(Dynamic Linking Library)是一種程序設(shè)計(jì)技術(shù),可以在不同的程序享程序庫。Linux作為一個(gè)開源的操作系統(tǒng),具有非常好的兼容性和可移植性,因此能夠使用廣泛。在Linux環(huán)境中,動(dòng)態(tài)鏈接庫的使用方法也非常簡單和靈活,用戶可以根據(jù)不同的需求設(shè)置不同的庫文件路徑。本文將介紹。

創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元汝城做網(wǎng)站,已為上家服務(wù),為汝城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
1.動(dòng)態(tài)鏈接庫的概念和作用
動(dòng)態(tài)鏈接庫又稱共享庫,是一種在程序運(yùn)行時(shí)加載執(zhí)行的庫文件。它可以被多個(gè)程序使用,避免了程序代碼的重復(fù),提高了程序的重用性和可維護(hù)性。與之相對的是靜態(tài)鏈接庫,它在編譯時(shí)鏈接到程序中,使程序變得較大且不能共享。在Linux環(huán)境下,動(dòng)態(tài)鏈接庫有著重要的作用,可以提高程序的運(yùn)行效率和開發(fā)效率。
2.動(dòng)態(tài)鏈接庫的查找路徑
在Linux下,動(dòng)態(tài)鏈接庫在程序執(zhí)行時(shí)需要被加載到內(nèi)存中,因此需要找到動(dòng)態(tài)鏈接庫所在的路徑。在終端中可以使用ldd命令查看程序所調(diào)用的動(dòng)態(tài)鏈接庫列表。
$ ldd test
linux-vdso.so.1 (0x00007fff387b8000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f259bb2e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f259b941000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f259b5f3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f259c8d3000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f259b3db000)
從以上列表中可以看出,程序所調(diào)用的動(dòng)態(tài)鏈接庫文件的路徑是/lib/x86_64-linux-gnu/或/usr/lib/x86_64-linux-gnu/,這些路徑稱為默認(rèn)的查找路徑。Linux系統(tǒng)會(huì)在這些路徑下查找程序要用到的庫文件。
用戶也可以通過設(shè)置環(huán)境變量來添加自定義的動(dòng)態(tài)鏈接庫查找路徑。有兩個(gè)環(huán)境變量分別是LD_LIBRARY_PATH和LD_PRELOAD。
3. LD_LIBRARY_PATH
LD_LIBRARY_PATH是Linux系統(tǒng)用來設(shè)置用戶自定義動(dòng)態(tài)鏈接庫文件查找路徑的環(huán)境變量,是一個(gè)包含路徑列表的字符串,路徑之間用冒號(hào)分隔。通過設(shè)置該變量,用戶可以指定程序加載的動(dòng)態(tài)鏈接庫所在的路徑。如:
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
$ ldd /bin/bash
linux-vdso.so.1 => (0x00007ffdfd5ee000)
libtinfo.so.5 => /usr/local/lib/libtinfo.so.5 (0x00007f7d2ce6f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7d2cc6b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7d2c88c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7d2d0a6000)
從以上列表中可以看出,程序所調(diào)用的動(dòng)態(tài)鏈接庫文件的路徑是/usr/local/lib/,該路徑已經(jīng)被添加到了LD_LIBRARY_PATH環(huán)境變量中。用戶可以通過在.bashrc文件中設(shè)置LD_LIBRARY_PATH變量,實(shí)現(xiàn)永久修改系統(tǒng)的動(dòng)態(tài)鏈接庫查找路徑。
4. LD_PRELOAD
LD_PRELOAD是Linux系統(tǒng)用來加載指定的動(dòng)態(tài)鏈接庫文件的環(huán)境變量。用戶可以使用LD_PRELOAD在程序運(yùn)行之前動(dòng)態(tài)地加載一些共享庫,從而實(shí)現(xiàn)一些特殊的功能。如:
$ LD_PRELOAD=/usr/lib/libmylibrary.so.1 ls
在以上命令中,LS命令會(huì)在運(yùn)行之前先加載/lib/libmylibrary.so.1庫文件,從而實(shí)現(xiàn)特殊的功能。在實(shí)際開發(fā)中,用戶可以根據(jù)不同的需求通過設(shè)置LD_PRELOAD實(shí)現(xiàn)自己的定制化需求,在一定程度上提高了系統(tǒng)的擴(kuò)展性和靈活性。
在Linux環(huán)境下,動(dòng)態(tài)鏈接庫的使用方法非常簡單和靈活。通過設(shè)置路徑和環(huán)境變量,用戶可以實(shí)現(xiàn)自己的特定需求,提高系統(tǒng)的可維護(hù)性和擴(kuò)展性。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
我用虛擬機(jī)安裝linux,然后蹦出缺少libxml2.dll文件,請問這個(gè)文件放在哪里?。?/h3>
你的 Windows 什么版本???這東西貌似早就尺旦自帶了。
這個(gè)東西是微陵銀擾軟的一個(gè) xml 語言支持庫,搏液我建議你去下載這個(gè)支持程序的安裝文件,而不是去隨便下載個(gè) dll 就扔進(jìn)計(jì)算機(jī)里面。
C:Windows/system32
求Linux文件系統(tǒng)的目錄結(jié)構(gòu)
文件系統(tǒng)的組織結(jié)構(gòu)分析;
文件系統(tǒng)的組織結(jié)構(gòu)分析,我們能分析什么呢?也就是當(dāng)我們列/目錄時(shí),所看到的/usr、/etc …… …… /var 等殲廳目錄是做什么用的,這些目錄是不是有些特定的用途。無論哪個(gè)哪個(gè)版本的Linux系統(tǒng),都有這些目錄,這些目錄應(yīng)該是標(biāo)準(zhǔn)的。當(dāng)然各個(gè)Linux發(fā)行版本也會(huì)存在一些小小的差異,但總體來說,還是大體差不多。
Linux發(fā)行版本之間的差別其實(shí)很少,差別氏派隱主要表現(xiàn)在系統(tǒng)管理的特色工具以及軟件包管理方式的不同,除此之外,沒有什么大的差別; 比如Fedora軟件包管理工具是rpm,而Slackware是pkgtool 或installpkg等;
我們接著說文件系統(tǒng)組織結(jié)構(gòu)。羨橋
/ Linux文件系統(tǒng)的入口,也是處于更高一級(jí)的目錄;
/bin 基礎(chǔ)系統(tǒng)所需要的那些命令位于此目錄,也是最小系統(tǒng)所需要的命令;比如 ls、cp、mkdir等命令;功能和/usr/bin類似,這個(gè)目錄中的文件都是可執(zhí)行的,普通用戶都可以使用的命令。做為基礎(chǔ)系統(tǒng)所需要的最基礎(chǔ)的命令就是放在這里。
/boot Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件,比如 vmlinuz initrd.img 文件都位于這個(gè)目錄中。在一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理器也位于這個(gè)目錄;
/dev 設(shè)備文件存儲(chǔ)目錄,比如聲卡、磁盤…… ……
/etc 系統(tǒng)配置文件的所在地,一些服務(wù)器的配置文件也在這里;比如用戶帳號(hào)及密碼配置文件;
/home 普通用戶家目錄默認(rèn)存放目錄;
/lib 庫文件存放目錄
更加詳細(xì)的在這,
下面這有個(gè)圖
另外你要完全了解linux的文件系統(tǒng)還要了解linux的文件的數(shù)據(jù)結(jié)構(gòu)
linux操作系返配統(tǒng)中的主要目錄及目錄內(nèi)容由文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)(英語:filesystem
hierarchy
standard,fhs)定義。
在fhs中,所有的文件和目錄都出現(xiàn)在根目錄”/”下,漏陵指即使他們存儲(chǔ)在不同的物理設(shè)備中。但是請注意,這些目錄中的一些可能或可能不會(huì)在linux系統(tǒng)上出現(xiàn),這取決于系統(tǒng)是否含有某些子系統(tǒng),例如
x
window系統(tǒng)
的安裝與否。
下面是fhs中所定義的一些目錄,和目錄的描述:
/bin
二進(jìn)制可執(zhí)行命令
/dev
設(shè)備特殊文件
/etc
系統(tǒng)管理和配置文件
/etc/rc.d
啟動(dòng)的配置文件和腳本
/home
用戶主目錄的基點(diǎn),比如用戶user的主目錄就是/home/user,可以用~user表示
/lib
標(biāo)準(zhǔn)程序設(shè)計(jì)庫,又叫動(dòng)態(tài)鏈接共享庫,作汪純用類似windows里的.dll文件
/in
系統(tǒng)管理命令,這里存放的是系統(tǒng)管理員使用的管理程序
/tmp
公用的臨時(shí)文件存儲(chǔ)點(diǎn)
/root
系統(tǒng)管理員的主目錄
/mnt
系統(tǒng)提供這個(gè)目錄是讓用戶臨時(shí)掛載其他的文件系統(tǒng)。
/lost+found
這個(gè)目錄平時(shí)是空的,系統(tǒng)非正常關(guān)機(jī)而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
/proc
虛擬的目錄,是系統(tǒng)內(nèi)存的映射??芍苯釉L問這個(gè)目錄來獲取系統(tǒng)信息。
/var
某些大文件的溢出區(qū),比方說各種服務(wù)的日志文件
/usr
最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個(gè)目錄。其中包含:
/usr/x11r6
存放x
window的目錄
/usr/bin
眾多的應(yīng)用程序
/usr/in
超級(jí)用戶的一些管理程序
/usr/doc
linux文檔
/usr/include
linux下開發(fā)和編譯應(yīng)用程序所需要的頭文件
/usr/lib
常用的動(dòng)態(tài)鏈接庫和軟件包的配置文件
/usr/man
幫助文檔
/usr/src
源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里
/usr/local/bin
本地增加的命令
/usr/local/lib
本地增加的庫
跟Unix類似。
怎樣理解樹型目錄結(jié)構(gòu)?其實(shí)含漏跟Windows差不多,只是Linux沒有C:的盤符概念,而是用一個(gè)/“統(tǒng)治”了所有的文談察爛件沒渣和文件夾,形成樹型結(jié)構(gòu)。
關(guān)于linux dll文件路徑的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
分享題目:Linux下動(dòng)態(tài)鏈接庫文件路徑的使用方法(linuxdll文件路徑)
鏈接分享:http://www.dlmjj.cn/article/cddphdj.html


咨詢
建站咨詢
