реклама на сайте
подробности

 
 
> SAM7, нужна подсказка
beer_warrior
сообщение Mar 28 2006, 06:52
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



В файле lib_AT91SAM7S64.h функции заявлены как инлайновые, соответственно при многократном включении файла ошибка линкера, при однократном компилер ругается на отсутсвие объявлений.
До последнего времени не обращал внимание на ворнинги, но сейчас уже достало.
Как бы это дело по быстренькому подлечить?
Компилятор gcc.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
snake (o)
сообщение Mar 28 2006, 07:24
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 39
Регистрация: 9-03-06
Из: Оренбург
Пользователь №: 15 073



как всегда
#ifndef lib
#define lib
#endif

если склероз не изменяет
или посмотри как используются в *nix
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 28 2006, 07:52
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Нет нефига не лечит, код в файле присутствует.angry.gif
Компилится и линкуется 2 раза.
По уму его бы надо переименовать в .с и сделать заголовочник с декларациями, только мороки много.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
vet
сообщение Mar 28 2006, 09:08
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



перед включением либы сделайте #define __inline inline
Переделывать в .c не надо, всё правильно сделано - инлайн-функции объявляются в том же модуле, в котором используются.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Mar 28 2006, 09:23
Сообщение #5


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Я так подозреваю что можно сделать static inline, тогда видимость этих функций будет только в пределах того С-шного файла, куда они инклюдятся.


--------------------
شامل
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 28 2006, 12:18
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Спасибо, выручил компромисный вариант - добавление в начале либы
#define __inline static inline
Таперича она и статическая и синтаксис хавается.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 13:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016