私のアプリケーションは、ホスト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