• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Компиляция: undefined reference to ...

valerivp

Member
Пытаюсь скомпилировать проект, получаю ошибки:

undefined reference to system_os_post(unsigned char, unsigned int, unsigned int)
undefined reference to wifi_get_ip_info(unsigned char, ip_info*)
undefined reference to wifi_station_get_connect_status()
undefined reference to espconn_regist_connectcb(espconn*, void (*)(void*))
undefined reference to espconn_regist_sentcb(espconn*, void (*)(void*))
...

Понятно дело, не хватает библиотек. Но каких именно? Не нашел в документации, какие именно функции в каких библиотеках.

Пытаюсь компилировать в Arduino и в vMicro

В новом проекте (примере API) в Ардуино нет ошибок "undefined reference to wifi_...". Остальные есть.
В vMicro - полный набор ошибок.

если добавляю в файл строку:
#include <WiFiManager.h>
то ошибки "undefined reference to wifi_..." уходят (и в Arduino и в vMicro). Почему - мне не понятно. При этом я пытался скопировать все содержимое файла .h в ino - не помогает, ошибки есть.

на данный момент есть не знаю как избавиться от ошибок "undefined reference to espconn_..."

Обе среды используют один SDK: ...\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\
 

pvvx

Активный участник сообщества
Пытаюсь скомпилировать проект
В чем?
Ошибки у кого - у линковшика или компилятора?
Какой используется компилятор?

PS: SDK от Espressif не собирается с опцией компилятору -Wall -Werror, т.к. не содержит описаний большинства функций и всё написано кое-как.
Если вы используете Arduino, то при включении опции показывать "все" сообщения компилятора, то всегда получите кучу варнингов. Для писателей Arduino это является нормой... Они же созданы не для рабочих изделий, а для игры и не требуют нормального подхода. Подумаешь что-то там будет криво работать в каких-то случаях. Мигать светодиодом это не мешает.
 

valerivp

Member
В топике написано:
Пытаюсь компилировать в Arduino и в vMicro
И это не варнинги, а ошибка линковки.
 

pvvx

Активный участник сообщества
В Users\Имя\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0 нет WiFiManager.h
Значит не подцепили какие-то объекты (классы) описанные в *.h, тянущие за собой вызовы других либ и возможно нарушена последовательность линковки.
 
Сверху Снизу