Il peut y avoir des situations subtiles présentant les mêmes symptômes. J'ai l'habitude de construire un projet CMake, à la fois localement à /path/to/myproj
et à distance sur un serveur, à /path/to/myproj-deploy
. Le projet contient un .so
artefact de construction et plusieurs fichiers ELF qui en dépendent.
Lorsque j'ai récupéré les binaires du serveur de construction, j'ai découvert que l'appel (local) des ELFs entraîne les mêmes problèmes. Merci à authomatthias en appelant
$ objdump -p bin/myelf | grep my
bin/myelf: file format elf64-x86-64
NEEDED libmyso.so
RUNPATH /path/to/myproj-deploy/bin
aboutit à une conséquence non surprenante : Le système CMake a codé en dur le chemin à distance dans le fichier RUNPATH
ce qui démontre une certaine non-portabilité (sans actions supplémentaires appropriées, je suppose).