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

mDNS example не линкуется

sharikov

Active member
Пытаюсь собрать mdns example из примеров без модификации.
Не линкуется :
RTL00MP3/RTL00_SDKV35a/component/common/example/mdns/example_mdns.c:21: undefined reference to `mDNSResponderInit'
(и так далее)

В исходниках эти функции не находятся.

---
Разобрался.
В RTL00MP3 нет библиотеки lib_mdns.a
Скопировал из rtl-дурины, заработало.
2pvvx добавьте ее в репу RTL00MP3 и в sdkset.mk
 
Последнее редактирование:

pvvx

Активный участник сообщества
В RTL00MP3 нет библиотеки lib_mdns.a
Скопировал из rtl-дурины, заработало.
2pvvx добавьте ее в репу RTL00MP3 и в sdkset.mk
Не хочу. Там ужасно неоптимальный mdns. Жрет много ресурсов, настроек по минимуму. Без исходников mdns не нужен. Я пока не успел найти достойный начальный вариант исходников mdns под LwIP.
 

pvvx

Активный участник сообщества
А для ардуинщиков такой сойдет сталобыть ?
Угу :) Для Дурины всё равно - там мигают светодиодом.
lib_mdns.a - из другого SDK.
Ameba Arduino имеет другие настройки трансляции SDK и сам SDK у них другой.

Взяли бы, да нашли исходники mdns для LwIP, да адаптировали к SDK.
А то пишите - "что-то там не линкуется"...
 

pvvx

Активный участник сообщества
@sharikov - какой ip адрес дает данный lib_mdns.a при выполнении mDNSRegisterService(..) на включенной AP на модуле и соединение к ней в качестве клиента? :)
Посмотрите и поймете, что lib_mdns.a использовать нельзя, даже в Arduino :p
-------
Уточняю ('реверс'):
Код:
uint8_t ip_str_14765[40];
uint8_t * mDNSPlatformIPString(int type)
{
  uint8_t *ip;

  if (type == 2)
  {
      ip = LwIP_GetIP(&xnetif[0]);

    DiagSPrintf(ip_str_14765, "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
  }
  return ip_str_14765;
}

uint8_t mask_str_14770[40];
uint8_t * mDNSPlatformMaskString(int type)
{
  uint8_t *mask;

  if ( type == 2 )
  {
    mask = LwIP_GetMASK(&xnetif[0]);
    DiagSPrintf(mask_str_14770, "%d.%d.%d.%d", mask[0], mask[1], mask[2], mask[3]);
  }
  return mask_str_14770;
}

uint8_t mac_str_14775[18];
uint8_t *mDNSPlatformMACString()
{
  uint8_t *mac = LwIP_GetMAC(&xnetif[0]);
  DiagSPrintf(
    mac_str_14775,
    "%02x:%02x:%02x:%02x:%02x:%02x",
    mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
  return mac_str_14775;
}
А у нас в системе до 3-х netif - st, ap, eth
 
Последнее редактирование:
Сверху Снизу