Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SAM7
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
beer_warrior
В файле lib_AT91SAM7S64.h функции заявлены как инлайновые, соответственно при многократном включении файла ошибка линкера, при однократном компилер ругается на отсутсвие объявлений.
До последнего времени не обращал внимание на ворнинги, но сейчас уже достало.
Как бы это дело по быстренькому подлечить?
Компилятор gcc.
snake (o)
как всегда
#ifndef lib
#define lib
#endif

если склероз не изменяет
или посмотри как используются в *nix
beer_warrior
Нет нефига не лечит, код в файле присутствует.angry.gif
Компилится и линкуется 2 раза.
По уму его бы надо переименовать в .с и сделать заголовочник с декларациями, только мороки много.
vet
перед включением либы сделайте #define __inline inline
Переделывать в .c не надо, всё правильно сделано - инлайн-функции объявляются в том же модуле, в котором используются.
Edmundo
Я так подозреваю что можно сделать static inline, тогда видимость этих функций будет только в пределах того С-шного файла, куда они инклюдятся.
beer_warrior
Спасибо, выручил компромисный вариант - добавление в начале либы
#define __inline static inline
Таперича она и статическая и синтаксис хавается.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.