• Система автоматизации с открытым исходным кодом на базе 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, тянущие за собой вызовы других либ и возможно нарушена последовательность линковки.
 
Сверху Снизу