Как я могу использовать заголовочные файлы библиотеки для генерации файла libfoo.sym для использования с libtool -export-symbols?

0

Я создаю общую библиотеку для дистрибутива Debian GNU/Linux, и меня беспокоит количество символов из внутренних функций, которые он экспортирует без каких-либо проблем. Поскольку библиотека построена с использованием autoconf/automake/libtool, ответ прост: я могу просто добавить -export-symbols libfoo.sym в libfoo_la_LDFLAGS и указать только те символы, которые я хочу экспортировать в этот файл.

Но поскольку это связано с ошибкой, связанной с ручной работой, я подумал, что должен быть лучший способ. Можно ли автоматизировать чтение (в данном случае) десятков файлов .h которые сопровождают библиотеку и сгенерировать первую версию файла libfoo.syms.

Могу ли я просто использовать компилятор C (или C++), чтобы заняться работой для меня?

  • 1
    Если вы использовали какое-то «пространство имен» для библиотечного API, вы можете использовать -export-symbols-regex REGEX .
  • 0
    @BrettHale Да, я обдумал это, но чтобы быть уверенным, мне все еще нужно прочитать все эти заголовочные файлы. (Я не автор.)
Показать ещё 1 комментарий
Теги:
shared-libraries
libtool

2 ответа

0

Но поскольку это связано с ошибкой, связанной с ручной работой, я подумал, что должен быть лучший способ. Можно ли автоматизировать чтение (в данном случае) десятков файлов.h, которые сопровождают библиотеку и сгенерировать первую версию файла libfoo.syms.

Возможно, было бы более полезно использовать nm в объектных файлах вместо того, чтобы пытаться разбирать файлы заголовков. nm можно сказать, чтобы ограничивать вывод только экспортом.

Могу ли я просто использовать компилятор C (или C++), чтобы заняться работой для меня?

У некоторых компиляторов есть инструменты для этого, например, поддержка видимости gcc.

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

0

Это эквивалентно извлечению прототипов функций и охватывает здесь: Извлечение прототипов функций C/C++

Ещё вопросы

Сообщество Overcoder
Наверх
Меню