ldd ne parvient pas à trouver une DLL, présente dans la définition de rpath. Quelques autres bibliothèques sont trouvées (vérifier /./../lib/*)Malgré la définition de rpath, une DLL n'est pas trouvée
Voici la sortie de ldd (on peut voir que 2 dll se trouvent dans ../lib, mais pas libexpat.so.0:
root @ HyperStream:/DT/local/ADE-trunk4/build-ADE-Desktop-Default/bin # linux-vdso.so.1 ldd ./ade_admin => (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/local/ADE-trunk4/build-ADE-Desktop par défaut/bin/./../lib/libaprutil-1. donc 0 (0x00007f31ab58c000) libapr-1.so.0 => /DT/local/ADE-trunk4/build-ADE-Desktop par défaut/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 => not found librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f31a9fc4000) [...]
root @ hyperstream:/DT/local/ADE-trunk4/build-ADE-Desktop par défaut/bin # fichier ../lib/libexpat.so.0 ../lib/libexpat.so.0: ELF 64-bit LSB partagéobjet, x86-64, version 1 (SYSV), lié dynamiquement, BuildID [SHA1] = 762de704943d03033d01a9725216d6b05d0740f5, pas dépouillé
Voici le rpath:
root @ HyperStream:/DT/local/ADE-trunk4/build-ADE-Desktop par défaut/bin # read -d ade_admin | 'R. * CHEMIN grep 16: 0x000000000000001d (RUNPATH) RUNPATH Library: [$ {} ORIGIN /../ lib]
Maintenant, le fait de tueur: Il est fonctionne avec clang 3.8, mais ne parviennent pas à gcc 6.3 (ubuntu 16.10)
il est évident que l'ajout d'un LD_LIBRARY_PATH = ../lib faire cela fonctionne à nouveau, mais le but de rpath était d'éviter de le mettre
root @ HyperStream:/DT/local/ADE-trunk4/build-ADE-Desktop par défaut/bin # export LD_LIB RARY_PATH = ../ lib root @ hyperstream:/DT/local/ADE-trunk4/build-ADE-Desktop-par défaut/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)
Toute idée?
Cordialement
Laurent