|
|
  |
ошибка li006 |
|
|
|
Aug 11 2011, 08:56
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
А раз выдает сообщение - то что-то на так. А чтобы разобраться - надо почитать. Просто стек уже в готовом виде, компилится без ошибок, а как начинаешь инициализировать - тут и возникают непонятки...
|
|
|
|
|
Aug 11 2011, 08:58
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
не. с англицким все путем. просто как достучаться до этого файла, на который ссылка?
|
|
|
|
|
Aug 11 2011, 09:04
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
sys_prot_t sys_arch_protect(void) { sys_prot_t Ret = __get_interrupt_state(); __disable_interrupt(); return(Ret); } это определение из файла aaa.c
sys_prot_t sys_arch_protect(void); - это из файла aaa.h #include aaa.h - это из файла bbb.c, в котором я подключаю функцию инициализации. А линкер ругается на файл, который я вообще не трогаю. Я знаю, что дело не в бобине, но не хватает знания, где мой про..б?
|
|
|
|
|
Aug 11 2011, 09:20
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
да. включен. он присутствует в списке билдера.
Причем, если поискать по проекту sys_arch_protect - то он фигурирует только в двух файлах - aaa.c и aaa.h Ни о каком файле, на который ссылается линкер и речи не идет
|
|
|
|
|
Aug 11 2011, 09:39
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
эта опция у меня и стоит. но все равно...
|
|
|
|
|
Aug 11 2011, 10:06
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
Наверное, нашел в чем дело: в aaa.c есть строчка #define SYS_ARCH_PROTECT(lev) lev = sys_arch_protect() а в том, на который ругается линкер, есть SYS_ARCH_DECL_PROTECT(old_level); но опять, же aaa.h подключен.
|
|
|
|
|
Aug 12 2011, 08:26
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
Я уже не знаю как бороться... Подскажите, кто может. Есть проект. Он компилится нормально и нормально работает в девайсе. Добавляю в файле bbb.c функцию aaa(); которая прописана в файле aaa.c и aaa.h Добавляю в файл bbb.с #include aaa.h идет ошибка линкера li005:Error[Li005]: no definition for "aaa" [referenced from D:\Project\Bin\Obj\bbb.o] Дописываю в aaa.h строку "#define aaa()" и все становится нормально. Почему? Откуда ноги растут???
Сообщение отредактировал MiDV - Aug 12 2011, 08:29
|
|
|
|
|
Aug 12 2011, 08:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (MiDV @ Aug 12 2011, 11:26)  Почему? Потому, что Вы не ведаете, что творите и не видите, что пишите  . Посему все Ваши слова описывающие ситуацию просто дезинформация. Если выложите проект, то исправить "проблему" видя то, что Вы РЕАЛЬНО написали, секундное дело.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 12 2011, 08:35
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
Или еще такая же ситуация, только функция определена в хидере так: #ifndef aaa u32_t aaa(void); #endif А тут уж дописывай что хошь - не помогает... Как побороть?
не вопрос. Что именно Вам надо?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|