CentOS下添加動態連結程式庫的方法

來源:互聯網
上載者:User

一些C/C++編譯好後,當運行時,報錯說無法載入共用庫,例如:

./write: error while loading shared libraries: libhdfs.so.0.0.0: cannot open shared object file: No such file or directory

發生這種報錯的原因是,編譯的程式運行期間需要依賴某個共用庫, 比如上面,write可執行程式需要依賴一個叫“libhdfs.so”的共用庫。(動態連結程式庫與靜態連結庫的區別,請百度相關文檔)


解決上面的問題有兩種方式,下面兩種的任何一種都可以:


第一:在/etc/profile中添加共用庫的路徑:

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:/home/dcc/libhdfs

如上,添加了兩個路勁下的共用庫,注意,路勁之間用冒號(“:”)隔開。

第二:在/etc/ld.so.conf中添加路徑,然後重新載入共用庫:

vi /etc/ld.so.conf
編輯後如下:

include ld.so.conf.d/*.conf/home/dcc/libhdfs/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/
入上,分別添加了兩個路徑,每個路徑佔一行。編輯完後,重新載入庫:

/sbin/ldconfig -v


至於兩種方法的區別,我推測, 第一種是只在執行C/C++程式時才會載入,而第二種應該是針對整個系統,啟動時就載入。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.