Версии библиотеки Libtool, которые зависят от других библиотек - PullRequest
4 голосов
/ 17 апреля 2010

У меня есть framework , который использует Boost и CgiCC в основном приложении и в его интерфейсе.

Как мне создать версию двоичного интерфейса библиотеки (a.k.a. libtool -version-info)?

У меня нет проблем с отслеживанием изменений в самой библиотеке, когда я делаю различные изменения. Как это для меня ясно, как я должен версия.

Но ...

И библиотеки Boost, и CgiCC не предоставляют каких-либо обратно совместимых API / ABI, и моя библиотека может быть связана с совершенно произвольными версиями Boost и CgiCC, поэтому я не могу дать никаких обещаний об интерфейсах, поэтому не могу точно указать 1012 * потому что даже одна и та же библиотека, скомпилированная для разных версий Boost и CgiCC, будет несовместима.

Итак ... Что мне делать? Как мне версию библиотеки?

Я знаю, что в первую очередь не должен зависеть от интерфейсов Boost и CgiCC, но это то, что я получаю до сих пор для существующей стабильной версии. Эта проблема решена в следующем основном выпуске, но я все еще имею и хочу поддерживать текущий выпуск, поскольку он очень ценен.

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

-version-info прямо не берет какую-то версию майора-минорного патча, которую вы составили (для этого -release), но должна придерживаться схемы нумерации, описанной в http://www.gnu.org/software/libtool/manual/html_node/Versioning.html (вся глава ).

1 голос
/ 17 апреля 2010

Рассмотрите возможность принятия схемы управления версиями, например:

http://apr.apache.org/versioning.html

Если вы предоставляете API зависимых библиотек через свой, то вы должны увеличивать свой основной номер версии, если API зависимой библиотеки изменяется не обратно совместимым способом. Лучшая стратегия - вообще не выставлять внутреннюю зависимую библиотеку. Если вам нужно предоставить какой-то API, оберните его и абстрагируйте нестабильную зависимую библиотеку.

...