ldd kann keine DLL finden, die in der rpath Definition vorhanden ist. Einige andere Bibliotheken werden gefunden (check /./../lib/*)Obwohl rpath eingestellt ist, wird eine DLL nicht gefunden
Hier die Ausgabe von ldd (wir können sehen, dass 2 dll in ../lib gefunden werden, aber nicht libexpat.so.0:
root @ Hyper:/DT/local/ADE-trunk4/build-ADE-desktop-Standard/bin # LDD ./ade_admin linux-vdso.so.1 => (0x00007ffeb9796000) libadeversion.so = > /DT/local/ADE-trunk4/build-ADE-Desktop-Default/bin/./../lib/libadeversion.so (0x00007f31abaef000) libuuid.so.1 => /lib/x86_64-linux- gnu/libuuid.so.1 (0x00007f31ab8ca000) libpthread.so.0 =>/lib/x86_64-linux-gnu/libpthr ead.so.0 (0x00007f31ab6ac000) libaprutil-1.so.0 => /DT/lokal/ADE-trunk4/build-ADE-Desktop-Standard/bin/./../lib/libaprutil-1. so.0 (0x00007f31ab58c000) libapr-1.so.0 => /DT/lokal/ADE-trunk4/build-ADE-Desktop-Standard/bin/./../lib/libapr-1.so 0,0 (0x00007f31ab460000) libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007f31ab24d000) libavahi-common.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007f31ab041000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f31aae3d000) libstdC++. 6 =>/usr/lib/x86_64-linux-g nu/libstdC++. so.6 (0x00007f31aaab5000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f31aa7ac000) libgcc_s.so.1 => /lib/x86_64-linux -gnu/libgcc_s.so.1 (0x00007f31aa595000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f31aa1cc000) /lib64/ld-linux-x86-64.so. 2 (0x0000560d30a76000) libexpat.so.0 => nicht librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f31a9fc4000) [...] gefunden
root @ hyperstream:/DT/lokal/ADE-trunk4/build-ADE-Desktop-Standard/bin # Datei ../lib/libexpat.so.0 ../lib/libexpat.so.0: ELF 64-Bit LSB geteilt Objekt, x86-64, Version 1 (SYSV), dynamisch gelinkt, BuildID [SHA1] = 762de704943d03033d01a9725216d6b05d0740f5, nicht gestrippt
Hier die rpath:
root @ Hyper:/DT/local/ADE-trunk4/build-ADE-Desktop-Standard/bin # readelf -d ade_admin | grep 'R. * PATH' 16: 0x000000000000001d (RUNPATH) Bibliothek RUNPATH: [$ {} ORIGIN /../ lib]
Nun ist die Killer der Tat: Es ist funktioniert mit Klirren 3.8, aber nicht mit 6.3 gcc (ubuntu 16.10)
Offensichtlich ein LD_LIBRARY_PATH Hinzufügen = ../lib machen es funktioniert wieder, aber das Ziel von rpath war zu setzen zu vermeiden es
root @ Hyper:/DT/local/ADE-trunk4/build-ADE-Desktop-Standard/bin # Export LD_LIB RARY_PATH = ../ lib root @ hyperstream:/DT/lokal/ADE-trunk4/build-ADE-Desktop-Standard/bin # ldd ./ade_admin linux-vdso.so.1 => (0x00007ffea23b6000) libadeversion.so => ../lib/libadeversion.so (0x00007f78c6474000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f78c624f000) libpthread.so.0 => /lib/x86_64- linux-gnu/libpthread.so.0 (0x00007f78c6031000) libaprutil-1.so.0 => ../lib/libaprutil-1.so.0 (0x00007f78c5f11000) libapr-1.so.0 => ../ lib/libapr-1.so.0 (0x00007f78c5de5000) libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007f78c5bd2000) libavahi-common.so .3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007f78c59c6000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f78c57c2000) libstdC++. so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f78c543a000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f78c5131000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f78c4f1a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f78c4b51000) /lib64/ld-linux-x86-64.so.2 (0x0000559fdceab000) libexpat.so.0 => . ./lib/libexpat.so.0 (0x00007f78c492a000)
Jede Idee?
Grüße
Laurent