日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux系統(tǒng)中如何添加自己的庫文件路徑

;庫文件在連接(靜態(tài)庫和共享庫)和運(yùn)行(僅限于使用共享庫的程序)時(shí)被使用 , 其搜索路徑是在系統(tǒng)中進(jìn)行設(shè)置的 。一般 Linux 系統(tǒng)把 /lib 和 /usr/lib 兩個(gè)目錄作為默認(rèn)的庫搜索路徑 , 所以使用這兩個(gè)目錄中的庫時(shí)不需要進(jìn)行設(shè)置搜索路徑即可直接使用 。對(duì)于處于默認(rèn)庫搜索路徑之外的庫 , 需要將庫的位置添加到庫的搜索路徑之中 。設(shè)置庫文件的搜索路徑有下列兩種方式 , 可任選其一使用: 在環(huán)境變量 LD_LIBRARY_PATH 中指明庫的搜索路徑 。在 /etc/ld.so.conf 文件中添加庫的搜索路徑 。將自己可能存放庫文件的路徑都加入到/etc/ld.so.conf中是明智的選擇 添加方法也極其簡(jiǎn)單 , 將庫文件的絕對(duì)路徑直接寫進(jìn)去就OK了 , 一行一個(gè) 。例如: /usr/X11R6/lib /usr/local/lib /opt/lib 需要注意的是:第二種搜索路徑的設(shè)置方式對(duì)于程序連接時(shí)的庫(包括共享庫和靜態(tài)庫)的定位已經(jīng)足夠了 , 但是對(duì)于使用了共享庫的程序的執(zhí)行還是不夠的 。這是因?yàn)闉榱思涌斐绦驁?zhí)行時(shí)對(duì)共享庫的定位速度 , 避免使用搜索路徑查找共享庫的低效率 , 所以是直接讀取庫列表文件 /etc/ld.so.cache 從中進(jìn)行搜索的 。/etc/ld.so.cache 是一個(gè)非文本的數(shù)據(jù)文件 , 不能直接編輯 , 它是根據(jù) /etc/ld.so.conf 中設(shè)置的搜索路徑由 /sbin/ldconfig 命令將這些搜索路徑下的共享庫文件集中在一起而生成的(ldconfig 命令要以 root 權(quán)限執(zhí)行) 。因此 , 為了保證程序執(zhí)行時(shí)對(duì)庫的定位 , 在 /etc/ld.so.conf 中進(jìn)行了庫搜索路徑的設(shè)置之后 , 還必須要運(yùn)行 /sbin/ldconfig 命令更新 /etc/ld.so.cache 文件之后才可以 。ldconfig ,簡(jiǎn)單的說 , 它的作用就是將/etc/ld.so.conf列出的路徑下的庫文件緩存到/etc/ld.so.cache 以供使用 。因此當(dāng)安裝完一些庫文件 , (例如剛安裝好glib) , 或者修改ld.so.conf增加新的庫路徑后 , 需要運(yùn)行一下 /sbin/ldconfig使所有的庫文件都被緩存到ld.so.cache中 , 如果沒做 , 即使庫文件明明就在/usr/lib下的 , 也是不會(huì)被使用的 , 結(jié)果編譯過程中抱錯(cuò) , 缺少xxx庫 , 去查看發(fā)現(xiàn)明明就在那放著 , 搞的想大罵computer蠢豬一個(gè) 。在程序連接時(shí) , 對(duì)于庫文件(靜態(tài)庫和共享庫)的搜索路徑 , 除了上面的設(shè)置方式之外 , 還可以通過 -L 參數(shù)顯式指定 。因?yàn)橛?-L 設(shè)置的路徑將被優(yōu)先搜索 , 所以在連接的時(shí)候通常都會(huì)以這種方式直接指定要連接的庫的路徑 。前面已經(jīng)說明過了 , 庫搜索路徑的設(shè)置有兩種方式:在環(huán)境變量 LD_LIBRARY_PATH 中設(shè)置以及在 /etc/ld.so.conf 文件中設(shè)置 。其中 , 第二種設(shè)置方式需要 root 權(quán)限 , 以改變 /etc/ld.so.conf 文件并執(zhí)行 /sbin/ldconfig 命令 。而且 , 當(dāng)系統(tǒng)重新啟動(dòng)后 , 所有的基于 GTK2 的程序在運(yùn)行時(shí)都將使用新安裝的 GTK庫 。不幸的是 , 由于 GTK版本的改變 , 這有時(shí)會(huì)給應(yīng)用程序帶來兼容性的問題 , 造成某些程序運(yùn)行不正常 。為了避免出現(xiàn)上面的這些情況 , 在 GTK及其依賴庫的安裝過程中對(duì)于庫的搜索路徑的設(shè)置將采用第一種方式進(jìn)行 。這種設(shè)置方式不需要 root 權(quán)限 , 設(shè)置也簡(jiǎn)單: $ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH 可以用下面的命令查看 LD_LIBRAY_PATH 的設(shè)置內(nèi)容: $ echo $LD_LIBRARY_PATH 至此 , 庫的兩種設(shè)置就完成了 。

    推薦閱讀