Suite à la question How do applications resolve to different versions of shared libraries at run time?, je me demandais comment spécifier sur la ligne de commande de lien quelle version de la bibliothèque à utiliser?Comment spécifier la version de la bibliothèque à utiliser au moment de la liaison?
Disons que je
libmy.so.1.0
libmy.so.1 -> libmy.so.1.0
libmy.so.2.0
libmy.so.2 -> libmy.so.2.0
libmy.so -> libmy.so.2
La manière habituelle de spécifier la bibliothèque de lien avec l'exécutable ne montre pas la version à utiliser. De plus, il est très probable que l'on veuille un lien avec la version la plus récente. Ainsi, la ligne habituelle fonctionne bien dans la plupart des cas.
gcc app.o -lmy -o app
Quelle est la ligne de commande pour créer un lien app
qui devrait utiliser la version 1 de la bibliothèque?
Attention: ce linker utilise, et ce qui est résolu sur l'exécution dynamiquement (ce 'ldd app' montrera) pourrait être pas la même chose . –