Ошибка линкёра IAR при компиляции проекта

Обсуждаем контроллеры компании Atmel.
Ответить
Kif55
Родился
Сообщения: 2
Зарегистрирован: Чт июн 04, 2015 07:33:38

Ошибка линкёра IAR при компиляции проекта

Сообщение Kif55 »

Здравствуйте уважаемы форумчане!
Для ускорения работы над проектом, в котором применяется графический ЖК, воспользовался готовой библиотекой u8glib. Библиотека написана для нескольких типов контроллеров ЖК и размещается на сайте google. Проект пишется на IAR v5.50. Библиотека присоединяется, включением "заголовочного" файла в текст программы (#include "src/u8g.h"). Так же, в настройках компилятора, указан путь к каталогу с файлами библиотеки u8g. При попытке компиляции, IAR выдаёт ошибку:

Building configuration: menu_avr_v1 - Debug
Updating build tree...
Linking
Error[e46]: Undefined external "u8g_font_6x10" referred in menu_avr_v1 ( c:\experementy\Menu_arv_v1\Debug\Obj\menu_avr_v1.r90 )
Error[e46]: Undefined external "u8g_SetFont" referred in menu_avr_v1 ( c:\experementy\Menu_arv_v1\Debug\Obj\menu_avr_v1.r90 )
Error[e46]: Undefined external "u8g_DrawStr" referred in menu_avr_v1 ( c:\experementy\Menu_arv_v1\Debug\Obj\menu_avr_v1.r90 )
Error while running Linker

Total number of errors: 3
Total number of warnings: 0

Раньше никогда не пользовался дополнительными библиотеками, кроме стандартных, входящих в состав IAR. Предполагаю, что неправильно настроил линкёр, но что именно, не могу разобраться.

Кто, что может подсказать по данному вопросу.

Заранее благодарен!
Реклама
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Ошибка линкёра IAR при компиляции проекта

Сообщение ibiza11 »

Линкер понятным языком вам сообщает, что при линковке проекта не смог найти переменные "u8g_font_6x10", "u8g_SetFont", "u8g_DrawStr", объявленные как external.
Код библиотеки я не смотрел, но думаю библиотека написана таким образом, что предполагается, что программист сам ручками создаст эти переменные. Изучите примеры использования этой библиотеки и напишите свой код в соответствии с этими примерами.
Ставим плюсы: )
Реклама
Kif55
Родился
Сообщения: 2
Зарегистрирован: Чт июн 04, 2015 07:33:38

Re: Ошибка линкёра IAR при компиляции проекта

Сообщение Kif55 »

ibiza11 большое спасибо что не оставили моё сообщение без внимания!

Первое, что я сделал, это взял пример (благо несколько примеров есть в комплекте с библиотекой) и откомпилировал его в AVRStudio 4. Всё прошло без ошибок и предупреждений, а дополнительных переменных заводить не потребовалось. Правда немного удивила (об этом узнал из форумов) необходимость *.с и *.h файлы из каталога библиотеки вручную (при помощи add files) присоединять к проекту. Казалось бы, достаточно указать "заголовочный" файл библиотеки, а в настройках путь к каталогу с "сишными" файлами.

Попытка тот же проект откомпилировать в IAR, приводит к вышеописанному результату. Возникает ощущение, что секрет кроется как раз в особенности построения данной библиотеки. К сожалению мне не хватает глубины теоретических знаний в работе компиляторов. По этой причине и консультируюсь здесь, в надежде, что кто нибудь уже сталкивался с похожей ситуацией и нашёл решение.

В любом случае, спасибо!!!

Пошёл дальше читать теорию))
Аватара пользователя
Psych
Опытный кот
Сообщения: 848
Зарегистрирован: Ср мар 02, 2011 07:47:39
Откуда: Уфа

Re: Ошибка линкёра IAR при компиляции проекта

Сообщение Psych »

Попробуйте закинуть .с и .h в папку с проектом.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Ошибка линкёра IAR при компиляции проекта

Сообщение ibiza11 »

При использовании библиотек, предоставляемых в исходных кодах, исполняемые файлы (*.c, *.cpp) нужно всегда добавлять к проекту. в IAR делайте точно так же как в AVRStudio, через Add file...
Ставим плюсы: )
Реклама
Ответить

Вернуться в «AVR»