我的应用链接主机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