我的應用鏈接主機A(OS:Ubuntu 11.04)中的libboost_python(版本:1.46.1)。該庫從源代碼構建和信息如下:共享對象名稱衝突
lrwxrwxrwx 1 henry henry 25 2011-11-10 14:33 libboost_python.so -> libboost_python.so.1.46.1
-rwxr-xr-x 1 henry henry 379867 2011-11-10 14:33 libboost_python.so.1.46.1
當我跑我在主機B上的應用程序(OS:Ubuntu的11.10),我安裝libboost_python同一版本與貼切。它的信息是有一點不同:
lrwxrwxrwx 1 root root 30 2011-06-03 14:54 /usr/lib/libboost_python-py27.so -> libboost_python-py27.so.1.46.1
-rw-r--r-- 1 root root 291224 2011-06-03 14:54 /usr/lib/libboost_python-py27.so.1.46.1
lrwxrwxrwx 1 root root 23 2011-11-09 04:34 /usr/lib/libboost_python.so -> libboost_python-py27.so
通過libboost_python.so聯最終的目標是不同的(主機B有一個「py27」)。所以當我運行我的應用程序時,發生錯誤:
error while loading shared libraries: libboost_python.so.1.46.1: cannot open shared object file: No such file or directory
我該如何解決這個衝突的名稱? 當我運行CMD「readelf -d MYAPP」輸出:
0x00000001 (NEEDED) Shared library: [libboost_python.so.1.46.1]
0x00000001 (NEEDED) Shared library: [libboost_system.so.1.46.1]
0x00000001 (NEEDED) Shared library: [libpython2.7.so.1.0]
0x00000001 (NEEDED) Shared library: [libjuserclass.so.0]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
好奇的是,對於提振條目不保存所謂的名字,但LIB的全名。
順便說一句,你應該接受一些你的問題的答案。阻止他們作爲未解答的問題出現,並向有意回答的人表示一些禮貌。 – thiton