ソースからVTKをコンパイルしようとしていますが、次のエラーが発生します。私はFedora 27、カーネルバージョン4.14.11-300.fc27.x86_64を実行しています。
/usr/lib64/libSM.so: undefined reference to `uuid_generate@UUID_1.0'
/usr/lib64/libSM.so: undefined reference to `uuid_unparse_lower@UUID_1.0'
ldd /usr/lib64/libSM.so
プログラム
$ldd /usr/lib64/libSM.so
linux-vdso.so.1 (0x00007ffd4998b000)
libICE.so.6 => /lib64/libICE.so.6 (0x00007f3aa36ff000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f3aa34fa000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3aa3115000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3aa3b23000)
libuuid.so.1のシンボルマークをよく見てください。
$objdump -T /lib64/libuuid.so.1 | grep 'uuid_generate$'
0000000000002370 g DF .text 0000000000000087 UUID_1.0 uuid_generate
$objdump -T /lib64/libuuid.so.1 | grep 'uuid_unparse_lower'
0000000000002710 g DF .text 0000000000000002 UUID_1.0 uuid_unparse_lower
の出力はldconfig
次のとおりです。
$sudo ldconfig -p | grep libuuid
libuuid.so.1 (libc6,x86-64) => /lib64/libuuid.so.1
libuuid.so.1 (libc6) => /lib/libuuid.so.1
$ sudo ldconfig -p | grep libSM
libSM.so.6 (libc6,x86-64) => /lib64/libSM.so.6
libSM.so.6 (libc6) => /lib/libSM.so.6
libSM.so (libc6,x86-64) => /lib64/libSM.so
ここで何が起こっているのか分かりません。誰でも助けることができますか?
ありがとう センチル
ベストアンサー1
リンクに-luuidを追加してみてください。 *.soファイルについて私が理解したところでは、これを行う必要はありませんが、私の場合も同様の問題が解決されました。