
[code]

    klusters: symbol lookup error: /usr/local/Trolltech/Qt-4.8.6/lib/libQtNetwork.so.4: undefined symbol: _ZN16QIODevicePrivate4peekEPcx
    
    lrwxrwxrwx 1 root root 21 May 12 16:03 /usr/local/Trolltech/Qt-4.8.6/lib/libQtNetwork.so.4 -> libQtNetwork.so.4.8.6
    
    ldd /usr/local/Trolltech/Qt-4.8.6/lib/libQtNetwork.so.4
        linux-vdso.so.1 =>  (0x00007ffc429bd000)
        libQtCore.so.4 => /usr/local/Trolltech/Qt-4.8.6/lib/libQtCore.so.4 (0x00002b0200180000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b0200690000)
        libz.so.1 => /lib64/libz.so.1 (0x00002b02008ad000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b0200ac3000)
        libm.so.6 => /lib64/libm.so.6 (0x00002b0200dca000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b020104e000)
        libc.so.6 => /lib64/libc.so.6 (0x00002b0201264000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002b02015f9000)
        libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00002b02017fd000)
        librt.so.1 => /lib64/librt.so.1 (0x00002b0201a01000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00002b0201c0a000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003a2ee00000)
    
[/code]

原因がお分かりの方はいらっしゃいますでしょうか


CC BY-SA 3.0
2017-05-12T07:25:11.030
34659
2017-05-17T01:11:20.117
2017-05-17T01:11:20.117
3054
23110
question
qt
/usr/local/Trolltech/Qt-4.8.6/lib/libQtNetwork.so.4はあるのにsymbol lookup errorが出る


先のコメントで確認してもらったとおり、`klusters`が参照している`libQtCore.so.4`が`/usr/lib64/libQtCore.so.4`となっており、`/usr/local/Trolltech/Qt-4.8.6/lib/libQtCore.so.4`とならないのが原因と考えられます。  
(`/usr/lib64/libQtCore.so.4`には`_ZN16QIODevicePrivate4peekEPcx`は含まれていないと予想される)

ビルド時(リンク時)のライブラリ検索パスと実行時のライブラリ検索パスが異なっていると予想します。対策としては、

  1. 環境変数`LD_LIBRARY_PATH`に`/usr/local/Trolltech/Qt-4.8.6/lib`を設定して`klusters`を実行する。
  2. `/etc/ld.so.conf`を編集して`/usr/local/Trolltech/Qt-4.8.6/lib`を`/usr/lib64`より優先にする。

という方法があると思います。


CC BY-SA 3.0
2017-05-12T22:24:37.193
34672
2017-05-12T22:24:37.193
20098
34659
answer