Мы используем встроенный верстак IAR для создания библиотек.Сборник IAR lmibrary: Удаление/скрытие внутренних символов и API-интерфейсов
При компиляции проекта с использованием этих библиотек мы сталкиваемся с проблемой: , если прикладной уровень реализует функцию с тем же именем, что и функция, определенная в библиотеке, при компиляции приложения сообщается об ошибке «повторное определение».
Чтобы избежать этого типа ошибки, я просто хочу знать, есть ли способ скрыть внутренние API, а также внутренние символы (глобальные переменные ...) скомпилированной библиотеки?
Спасибо заранее
Нет ли лучшего способа сделать это, чем «Просто дать им более длинное имя»? Возможно частичное соединение с файлом рулевого управления? – TomE
@TomE Я не вижу очевидного способа сделать частичную ссылку, но моя версия IAR сейчас немного устарела, и я, возможно, что-то пропустил, проскальзывая через руководство. Я стараюсь избегать использования функций, требующих дополнительной работы при переключении компиляторов, поэтому простое использование более длинного имени часто является наименьшим сопротивлением. – user694733
@TomE Как обход; Предполагая, что вы не используете как приложение, так и функцию lib в одном модуле компиляции, вы можете изменить функцию приложения на более длинное имя, но используйте '# define', чтобы создать короткий псевдоним для локального использования. Не элегантный, но C не идеальный язык для начала. – user694733