Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ошибка на этапе линковки :-(
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Gerasimov
Здравствуйте!

IAR C/C++ Compiler for ARM
4.42A Kickstart (4.42.1.301)

Осваиваю uIP. Есть демо проект с исходниками uip_webserver.
Он собирается, прошивается и работает.
С целью модификации, я скопировал его в другую папку
при проходе компилятором, всё ок, когда очередь доходит до линкера, вываливает следующее:
Error[e46]: Undefined external "__write" referred in ?putchar ( C:\Program Files\IAR\arm\LIB\dl4tptinl8n.r79 )
смотрел что и как в настройках исходного проекта проекта, разници не нашёл. Устал уже бится, помогите!
KRS
Цитата(Gerasimov @ Jan 16 2008, 11:18) *
Undefined external "__write"

Так вы должны определить функции ввода, вывода для вашего устройства
Посомтрите раздел IMPLEMENTING LOW-LEVEL CHARACTER INPUT AND
OUTPUT в даташите на компилер.
Николай Z
Цитата(Gerasimov @ Jan 16 2008, 11:18) *
Здравствуйте!

IAR C/C++ Compiler for ARM
4.42A Kickstart (4.42.1.301)

Осваиваю uIP. Есть демо проект с исходниками uip_webserver.
Он собирается, прошивается и работает.
С целью модификации, я скопировал его в другую папку
при проходе компилятором, всё ок, когда очередь доходит до линкера, вываливает следующее:
Error[e46]: Undefined external "__write" referred in ?putchar ( C:\Program Files\IAR\arm\LIB\dl4tptinl8n.r79 )
смотрел что и как в настройках исходного проекта проекта, разници не нашёл. Устал уже бится, помогите!

А откуда у Вас взялась функция putchar() в проекте uIP?
В моем uIP - вызовов этой функции нету и не было...
Gerasimov
Цитата(Николай Z @ Jan 16 2008, 13:04) *
А откуда у Вас взялась функция putchar() в проекте uIP?
В моем uIP - вызовов этой функции нету и не было...

Я раскоментарил putchar , только что на нём спотыкался, теперь вылез puts
по исходникам раскиданы printf вывода на uart дебажных сообщений, imho для них нужен puts.

не могу понять проблемы, я всего лишь перенёс проект на другой диск, все пути в настройках проекта заданы относительные. help.gif


описал puts в main
Код
int puts (const char *s){
  return(0); // 8-)
}

и линкер успокоился, проект собрался... но непонятки остались (uip юзает string.h а там прописаны и putchar и puts вот они линкеру и потребовались).
KRS
Цитата(Gerasimov @ Jan 16 2008, 14:31) *
(uip юзает string.h а там прописаны и putchar и puts вот они линкеру и потребовались).

Одно дело описаны, а другое используются.
Линкер выдает ошибку только в том случае когда функция реально используется на нее есть реальные вызовы и она должна попасть в выходной файл.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.