내 응용 프로그램은 호스트 A (OS : Ubuntu 11.04)에서 libboost_python (버전 : 1.46.1)을 연결합니다. 이 라이브러리는 소스에서 내장되어 다음과 같이 그 정보는 : 나는 호스트 B에 내 응용 프로그램 (OS : 우분투 11.10)을 실행하면공유 객체 이름이 충돌합니다
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
, 내가 APT와 같은 버전으로 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