J'ai une bibliothèque A que je développe. Lorsque je la déploie sur une machine, les fichiers libA.so et libA-X.Y.Z.so correspondants sont placés dans /usr/lib (X.Y.Z étant le numéro de version).
Maintenant, je développe une bibliothèque B qui utilise A. Lorsque je lie B, j'utilise le drapeau -lA. Ensuite, "ldd libB.so" me donne :
(...)
libA-X.Y.Z.so => /usr/lib/libA-X.Y.Z.so
(...)
Mon problème est que lorsque je publie une nouvelle version de A (X.Y.ZZ), je dois aussi publier une nouvelle version de B. Sinon, quelqu'un installant la dernière version de A ne pourra pas installer B qui cherchera la version X.Y.Z qui n'existe pas.
Comment résoudre ce problème ? Comment puis-je dire à B de rechercher libA.so et non libA-X.Y.Z.so ? Est-ce faux ou même dangereux de le faire ?
Mise à jour 1 : la bibliothèque A (que j'ai héritée de quelqu'un d'autre) utilise autotools.
Mise à jour 2 : lorsque je construis la bibliothèque A, je peux voir : "-Wl, -soname -Wl, libA-0.6.1.so". Si je comprends bien, cela signifie que nous forçons le soname à être libA-0.6.1.so. Est-ce correct ? Maintenant, mon problème est que je n'ai aucune idée de comment modifier ce comportement dans un projet qui utilise autotools. J'ai cherché sur Google pendant un moment mais je ne trouve aucune information utile. Devrais-je modifier configure.in ou un Makefile.am ?