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

 
 
> Multiple definitions, в Keil (компилер GCC)
Leen
сообщение Feb 2 2007, 06:24
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Есть набор исходников (из проекта AT91 USB Framework - Core 1.01), в каждый Сишный файл включено неск. хидеров, в частности, usb.h... Все хидеры имеют одну и ту же структуру:

#ifndef _(имя_файла)_H
#define _(имя_файла)_H
Внутри всякие объявления, и пр.,
в том числе:
#define inline _inline
.
.
.
inline unsigned int USB_GetState(const S_usb *pUsb)
{
return (*(pUsb->pState) & 0x0000FFFF);
}
.
.
.
#endif

По идее, такая структура не должна давать глюки при включении хидера в несколько файлов проекта. Но дает на этапе линковки:

udp.o(.text+0x3188):Core/usb.h:1378: multiple definition of `USB_GetState'
enumeration_example.o(.text+0x1bf4):Core/usb.h:1378: first defined here

Уже лыжи не едут! Че ему надо???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Feb 2 2007, 21:00
Сообщение #2


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

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



Если уж на то пошло, #define это директива препроцессора и никакой области видимости она не имеет и никакой сущности в программе не отображает. Это просто способ управления процессом компиляции.
Цитата
Если это противоречит вашему понятию "всей концепции языка", то пора бы эту концепцию подучить А о незнании VC программисту лучше смолчать, а не программистам тем более.

Я б сказал кому стоит подучить концепцию. Тем более VC это очень частный случай и какие нибудь Юникс-гуру могли ни разу его и не запускать smile.gif
Тем более в сабже стоит - GCC smile.gif


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



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

 


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


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