2015-11-30 6 views
1

Я пытаюсь найти способ получить версию моей библиотеки , скомпилированную с .получить версию lib, сгенерированную с помощью autotool

Я добавил -version-info 1:1:1 к LD_FLAGS в makefile.am и выход нормально: lib.so.0.1.1

Что мне нужно, чтобы получить время исполнения версию этой библиотеки и показать его на информационной панели.

Я думаю о двух различных способах сделать это:

  1. использовать внешний файл (например, заголовок.), Где я могу определить версии и которые делают makefile.am способен считывать значение версий от него. Таким образом, я могу получить доступ к нему и из моего кода.
  2. Способ, отличный от разбора имени файла библиотеки на FS, для получения версии, установленной опцией -version-info.

Является ли одна из этих идей применимой?

+0

я видел много проектов с использованием опции # 1 –

+0

@EmilCondrea меня тоже, но не с автоударом. Не могли бы вы показать, как это сделать с помощью libtool? – LPs

+0

Вы также рассмотрели возможность передачи версии в CFLAGS: -DVERSION = 0: 1: 1? (За возможность прочитать ее из кода) –

ответ

1

Определение LIB_VERSION = 0:1:1

Использование: -version-info $(LIB_VERSION) и добавить его в CFLAGS, если вы хотите использовать его с кодом: -DVERSION=$(LIB_VERSION)

+0

Спасибо. Хорошая идея, но я ищу решение, которое оставляет makefile как есть. Другими словами, решение, которое не подразумевает модификацию makefile каждый раз, когда выпущена новая версия. – LPs

+0

В основном добавление AC_DEFINE ([LIB_VERSION], 0: 1: 1) в configure.ac генерирует определение в config.h и с этим значением, и вы можете использовать его из кода. –

+0

Если вы не хотите вручную изменять файл makefile, возможно, вы можете использовать скрипт, который устанавливает переменную среды (которая будет использоваться для генерации констант и -version-info значений) или автоматически изменяет configure.ac. –

 Смежные вопросы

  • Нет связанных вопросов^_^