У меня есть библиотека А, которую я разрабатываю. Когда я развертываю его на машине, соответствующие libA.so и libA-X.Y.Z.so помещаются в / usr / lib (X.Y.Z - номер версии).
Сейчас я разрабатываю библиотеку B, в которой используется A. Когда я связываю B, я использую флаг -lA. Тогда " ldd libB.so " дает мне:
(...)
libA-X.Y.Z.so => /usr/lib/libA-X.Y.Z.so
(...)
Моя проблема в том, что когда я выпускаю новую версию A (XYZZ), мне также приходится выпускать новую версию B. В противном случае кто-то, устанавливающий последнюю версию A, не сможет установить B, который будет искать для версии XYZ, которая не существует.
Как мне решить эту проблему? Как я могу сказать B искать libA.so, а не libA-X.Y.Z.so? Или это неправильно? даже небезопасно?
Обновление 1 : библиотека A (которую я унаследовал от кого-то другого) использует автоинструменты.
Обновление 2 : когда я собираю библиотеку A, я вижу: "- Wl, -soname -Wl, libA-0.6.1.so" . Если я правильно понимаю, это означает, что мы заставляем soname быть libA-0.6.1.so . Это правильно ? Теперь моя проблема в том, что я понятия не имею, как изменить это поведение в проекте, который использует автоинструменты. Некоторое время я гуглил, но не могу найти никакой полезной информации. Должен ли я изменить файл configure.in или Makefile.am?