Как создать библиотеку C с интерфейсом из нескольких функций, а остальные объекты скрыты? - PullRequest
0 голосов
/ 07 июня 2011

Предположим, у меня есть три объектных файла C: po, qo, ro, и я хочу создать из них библиотеку.Первый объектный файл po имеет несколько функций, которые я хочу экспортировать, которые реализованы с использованием двух других объектов (qo, ro).Теперь я хочу, чтобы при связывании с такой библиотекой были видны только функции в po и никакие другие, потому что их символы могут конфликтовать с другими объектами в основном проекте.Например, qo может иметь некоторую функцию f (), которая нужна po, но она может конфликтовать с некоторыми функциями f (), реализованными в основном проекте, которые связывают, среди других библиотек, с этой библиотекой.Как я могу сделать это с помощью gcc?

Ответы [ 2 ]

0 голосов
/ 07 июня 2011

Вам нужно установить видимость для ваших функций: Управление видимостью символа

0 голосов
/ 07 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...