Ограничение символов в статической библиотеке Linux

Я ищу способы ограничить количество символов C, экспортируемых в статическую библиотеку Linux (архив). Я хотел бы ограничить их только теми символами, которые являются частью официального API для библиотеки. Я уже использую «static», чтобы объявить большинство функций как статические, но это ограничивает их область видимости файла. Я ищу способ ограничить область видимости для библиотеки.

Я могу сделать это для разделяемых библиотек, используя методы Ульриха ДреппераКак писать общие библиотеки, но я не могу применить эти методы к статическим архивам. В его ранееХорошие практики в библиотечном дизайне на бумаге он пишет:

Единственная возможность - объединить все объектные файлы, которым необходимы определенные внутренние ресурсы, в один, используя 'ld -r', а затем ограничить символы, которые экспортируются этим объединенным объектным файлом. У компоновщика GNU есть варианты сделать именно это.

Может ли кто-нибудь помочь мне узнать, что это за варианты? У меня был некоторый успех с 'strip -w -K prefix_ *', но это кажется грубым. В идеале мне бы хотелось, чтобы решение работало с GCC 3 и 4.

Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос