2016-06-28 7 views
1

は、C++(ForceFit、https://aclark.chem.wsu.edu/software/)で書かれたソフトウェアを起動しようとすると、未定義シンボルエラーが私に次のエラーを与える:C++ ForceFit

./ForceFit 
./ForceFit: symbol lookup error: ./ForceFit: undefined symbol: _ZN5Gnome5Glade3Xml6createERKSsRKN4Glib7ustringES7_ 

私は生のコードファイルへのアクセス権を持っていないが、いくつかのQを検索しました/私にいくつかのリードを与えるフォーラム。私が理解しているように、このエラーはライブラリにリンクされています。これまでに私が得たものは次のとおりです。

ldd -d -r ForceFit 
linux-vdso.so.1 (0x00007fff05fdf000) 
libgtkmm-2.4.so.1 => /lib64/libgtkmm-2.4.so.1 (0x00007f1081919000) 
libgdkmm-2.4.so.1 => /lib64/libgdkmm-2.4.so.1 (0x00007f10816c9000) 
libatkmm-1.6.so.1 => /lib64/libatkmm-1.6.so.1 (0x00007f108147b000) 
libgtk-x11-2.0.so.0 => /lib64/libgtk-x11-2.0.so.0 (0x00007f1080df0000) 
libpangomm-1.4.so.1 => /lib64/libpangomm-1.4.so.1 (0x00007f1080bc1000) 
libcairomm-1.0.so.1 => /lib64/libcairomm-1.0.so.1 (0x00007f108099a000) 
libglibmm-2.4.so.1 => /lib64/libglibmm-2.4.so.1 (0x00007f108071c000) 
libsigc-2.0.so.0 => /lib64/libsigc-2.0.so.0 (0x00007f1080515000) 
libgdk-x11-2.0.so.0 => /lib64/libgdk-x11-2.0.so.0 (0x00007f1080251000) 
libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007f108002b000) 
libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007f107fe15000) 
libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007f107fbee000) 
libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007f107f9e1000) 
libcairo.so.2 => /lib64/libcairo.so.2 (0x00007f107f6b8000) 
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f107f337000) 
libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007f107f0ec000) 
libfreetype.so.6 => /usr/lib64/freetype-freeworld/libfreetype.so.6 (0x00007f107ee42000) 
libz.so.1 => /lib64/libz.so.1 (0x00007f107ec2b000) 
libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f107e9e7000) 
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f107e795000) 
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f107e590000) 
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f107e38e000) 
librt.so.1 => /lib64/librt.so.1 (0x00007f107e186000) 
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f107de4c000) 
libglademm-2.4.so.1 => /lib64/libglademm-2.4.so.1 (0x00007f107dc42000) 
libglade-2.0.so.0 => /lib64/libglade-2.0.so.0 (0x00007f107da26000) 
libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f107d6bc000) 
libm.so.6 => /lib64/libm.so.6 (0x00007f107d3ba000) 
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f107d038000) 
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f107ce20000) 
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f107cc02000) 
libc.so.6 => /lib64/libc.so.6 (0x00007f107c841000) 
libgiomm-2.4.so.1 => /lib64/libgiomm-2.4.so.1 (0x00007f107c48c000) 
libX11.so.6 => /lib64/libX11.so.6 (0x00007f107c14c000) 
libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f107bf45000) 
libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f107bd12000) 
libXext.so.6 => /lib64/libXext.so.6 (0x00007f107baff000) 
libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f107b8f4000) 
libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007f107b6f0000) 
libXi.so.6 => /lib64/libXi.so.6 (0x00007f107b4e0000) 
libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f107b2d5000) 
libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007f107b0c9000) 
libXcomposite.so.1 => /lib64/libXcomposite.so.1 (0x00007f107aec6000) 
libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f107acc3000) 
libthai.so.0 => /lib64/libthai.so.0 (0x00007f107aab9000) 
libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f107a857000) 
libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007f107a5af000) 
libEGL.so.1 => /usr/lib64/nvidia/libEGL.so.1 (0x00007f107a3aa000) 
libdl.so.2 => /lib64/libdl.so.2 (0x00007f107a1a6000) 
libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007f1079fa1000) 
libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007f1079d97000) 
libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f1079b75000) 
libGL.so.1 => /usr/lib64/nvidia/libGL.so.1 (0x00007f1079840000) 
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f107961d000) 
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f1079402000) 
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f10791f1000) 
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f1078fc7000) 
libffi.so.6 => /lib64/libffi.so.6 (0x00007f1078dbe000) 
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f1078b98000) 
/lib64/ld-linux-x86-64.so.2 (0x0000563a7c108000) 
libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007f107898f000) 
libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f1078763000) 
libGLdispatch.so.0 => /usr/lib64/nvidia/libGLdispatch.so.0 (0x00007f10784ca000) 
libXau.so.6 => /lib64/libXau.so.6 (0x00007f10782c6000) 
libnvidia-tls.so.358.16 => /usr/lib64/nvidia/tls/libnvidia-tls.so.358.16 (0x00007f10780c2000) 
libnvidia-glcore.so.358.16 => /usr/lib64/nvidia/libnvidia-glcore.so.358.16 (0x00007f1076460000) 
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f10761ed000) 
undefined symbol: _ZN5Gnome5Glade3Xml6createERKSsRKN4Glib7ustringES7_ (./ForceFit) 
undefined symbol: _ZN4Glib7ustringC1ERKSs (./ForceFit) 

実行可能ファイルが見つからないということを私に示しています。また、C++これらのシンボル名にFILTを実行すると、以下が得られます。残念ながら、私はこの問題を解決するために必要とされる手順が見つからないと、Cに慣れていないですしている

c++filt _ZN5Gnome5Glade3Xml6createERKSsRKN4Glib7ustringES7_ 
Gnome::Glade::Xml::create(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Glib::ustring const&, Glib::ustring const&) 

c++filt _ZN4Glib7ustringC1ERKSs 
Glib::ustring::ustring(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 

++自分自身。実行可能ファイルのウェブサイトは、私がインストールしたG ++/C++コンパイラとlibgladeとgtkmmライブラリに依存していることを指定しています。私が関連している場合、Gnome 3でFedora 23を実行しています。

ありがとうございました!

+0

正しいアーキテクチャとコンパイラである正しいバージョンのライブラリがインストールされていることを確認してください。すべて失敗した場合は、自分でコンパイルしてください。 –

答えて

2

あなたがリンクしたパッケージは非常にひどくパッケージ化されたtarballのようです。 tarballにはソースコードだけでなく、コンパイルされたオブジェクトモジュールと実行可能ファイルも含まれています。

おそらく、tarballから解凍したバイナリを直接実行しようとしました。

バイナリは明らかに、これを実行しようとしている他の古典的な2011年頃のLinuxディストリビューションで構築されました。そして、もちろん、あなたが持っていない共有ライブラリにリンクしています。そして、あなたは、このパッケージ化されていないコードの結果を見ています。

コード全体がビルドされていると仮定して、コード全体をソースから再構築する必要があります。

+0

実際にソースからコードを再構築しようとすると、現在の設定では機能しません。この時点で私の最善の希望はおそらく著者に直接連絡することです。問題がどこにあるのか教えてくれてありがとう! – user6522768