• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天下

            記錄修行的印記

            ldconfig和ldd用法

            ldconfig和ldd用法

            一、ldconfig

            ldconfig --help
            Usage: ldconfig [OPTION...]
            Configure Dynamic Linker Run Time Bindings.

              -c, --format=FORMAT        Format to use: new, old or compat (default)
              -C CACHE                   Use CACHE as cache file
              -f CONF                    Use CONF as configuration file
              -i, --ignore-aux-cache     Ignore auxiliary cache file
              -l                         Manually link individual libraries.
              -n                         Only process directories specified on the command
                                         line.  Don't build cache.
              -N                         Don't build cache
              -p, --print-cache          Print cache
              -r ROOT                    Change to and use ROOT as root directory
              -v, --verbose              Generate verbose messages
              -X                         Don't generate links
              -?, --help                 Give this help list
                  --usage                Give a short usage message
              -V, --version              Print program version

            Mandatory or optional arguments to long options are also mandatory or optional
            for any corresponding short options.

            ldconfig是一個(gè)動(dòng)態(tài)鏈接庫(kù)管理命令,為了讓動(dòng)態(tài)鏈接庫(kù)為系統(tǒng)所共享,還需運(yùn)行動(dòng)態(tài)鏈接庫(kù)的管理命令--ldconfig。 ldconfig 命令的用途,主要是在默認(rèn)搜尋目錄(/lib和/usr/lib)以及動(dòng)態(tài)庫(kù)配置文件/etc/ld.so.conf內(nèi)所列的目錄下,搜索出可共享的動(dòng)態(tài)鏈接庫(kù)(格式如前介紹,lib*.so*),進(jìn)而創(chuàng)建出動(dòng)態(tài)裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認(rèn)為 /etc/ld.so.cache,此文件保存已排好序的動(dòng)態(tài)鏈接庫(kù)名字列表.


            linux下的共享庫(kù)機(jī)制采用了類(lèi)似于高速緩存的機(jī)制,將庫(kù)信息保存在/etc/ld.so.cache里邊。

            程序連接的時(shí)候首先從這個(gè)文件里邊查找,然后再到ld.so.conf的路徑里邊去詳細(xì)找。

            這就是為什么修改了ld.so.conf要重新運(yùn)行一下ldconfig的原因

            補(bǔ)充一點(diǎn),ldconfig在/sbin里面。


            ldconfig幾個(gè)需要注意的地方
            1. 往/lib和/usr/lib里面加?xùn)|西,是不用修改/etc/ld.so.conf的,但是完了之后要調(diào)一下ldconfig,不然這個(gè)library會(huì)找不到
            2. 想往上面兩個(gè)目錄以外加?xùn)|西的時(shí)候,一定要修改/etc/ld.so.conf,然后再調(diào)用ldconfig,不然也會(huì)找不到
            比如安裝了一個(gè)mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,這時(shí)就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存過(guò)后ldconfig一下,新的library才能在程序運(yùn)行時(shí)被找到。
            3. 如果想在這兩個(gè)目錄以外放lib,但是又不想在/etc/ld.so.conf中加?xùn)|西(或者是沒(méi)有權(quán)限加?xùn)|西)。那也可以,就是export一個(gè)全局變量LD_LIBRARY_PATH,然后運(yùn)行程序的時(shí)候就會(huì)去這個(gè)目錄中找library。一般來(lái)講這只是一種臨時(shí)的解決方案,在沒(méi)有權(quán)限或臨時(shí)需要的時(shí)候使用。
            4. ldconfig做的這些東西都與運(yùn)行程序時(shí)有關(guān),跟編譯時(shí)一點(diǎn)關(guān)系都沒(méi)有。編譯的時(shí)候還是該加-L就得加,不要混淆了。
            5. 總之,就是不管做了什么關(guān)于library的變動(dòng)后,最好都ldconfig一下,不然會(huì)出現(xiàn)一些意想不到的結(jié)果。不會(huì)花太多的時(shí)間,但是會(huì)省很多的事。


            二、ldd

            作用:用來(lái)查看程序運(yùn)行所需的共享庫(kù),常用來(lái)解決程序因缺少某個(gè)庫(kù)文件而不能運(yùn)行的一些問(wèn)題。
            ldd命令原理(摘自網(wǎng)絡(luò))
            1、首先ldd不是一個(gè)可執(zhí)行程序,而只是一個(gè)shell腳本
            2、ldd能夠顯示可執(zhí)行模塊的dependency,其原理是通過(guò)設(shè)置一系列的環(huán)境變量,如下:LD_TRACE_LOADED_OBJECTS、
            LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE等。當(dāng)
            LD_TRACE_LOADED_OBJECTS環(huán)境變量不為空時(shí),任何可執(zhí)行程序在運(yùn)行時(shí),它都會(huì)只顯示模塊的dependency,而程序并不真正執(zhí)行。要不你可以在shell終端測(cè)試一下,如下:
            (1) export LD_TRACE_LOADED_OBJECTS=1
            (2) 再執(zhí)行任何的程序,如ls等,看看程序的運(yùn)行結(jié)果
            3、ldd顯示可執(zhí)行模塊的dependency的工作原理,其實(shí)質(zhì)是通過(guò)ld-linux.so(elf動(dòng)態(tài)庫(kù)的裝載器)來(lái)實(shí)現(xiàn)的。我們知道,ld-
            linux.so模塊會(huì)先于executable模塊程序工作,并獲得控制權(quán),因此當(dāng)上述的那些環(huán)境變量被設(shè)置時(shí),ld-linux.so選擇了顯示可執(zhí)
            行模塊的dependency。
            4、實(shí)際上可以直接執(zhí)行l(wèi)d-linux.so模塊,如:/lib/ld-linux.so.2 --list program(這相當(dāng)于ldd program)

            posted on 2012-08-02 09:50 天下 閱讀(7673) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Linux使用

            <2013年3月>
            242526272812
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(4)

            隨筆分類(lèi)(378)

            隨筆檔案(329)

            鏈接

            最新隨筆

            搜索

            最新評(píng)論

            久久综合88熟人妻| 亚洲国产精品成人久久| 国产美女久久久| 亚洲中文字幕久久精品无码喷水| 少妇人妻综合久久中文字幕| 久久精品综合网| 久久精品国产91久久综合麻豆自制 | 日本精品久久久久影院日本 | 国产V亚洲V天堂无码久久久 | 久久无码专区国产精品发布| 色综合久久无码中文字幕| 国产成人精品白浆久久69| 亚洲精品成人久久久| 久久99精品久久只有精品| 久久国产综合精品五月天| 久久香蕉超碰97国产精品| 久久久中文字幕日本| 国产成人久久精品一区二区三区 | 久久精品中文騷妇女内射| 久久婷婷五月综合97色直播| 99久久人妻无码精品系列蜜桃| 怡红院日本一道日本久久| 精品一二三区久久aaa片| 精品久久久久一区二区三区| 久久精品人成免费| 思思久久好好热精品国产| 国产91久久综合| 国内精品久久久久影院免费| 亚洲AV无一区二区三区久久| 国产精品99久久久久久宅男小说| 精品乱码久久久久久夜夜嗨| 一本伊大人香蕉久久网手机| 久久久久99精品成人片欧美| 亚洲AV日韩AV永久无码久久| 国产精品99久久久精品无码 | 韩国无遮挡三级久久| 久久精品中文字幕无码绿巨人 | 亚洲精品乱码久久久久久蜜桃图片 | 午夜精品久久影院蜜桃| 久久久久国产精品嫩草影院| 久久国产精品一区|