Где я косяк или помогите победить ошибку

Тема в разделе "ESP8266, ESP32", создана пользователем BlackWarrior, 13 июл 2019.

Метки:
  1. BlackWarrior

    BlackWarrior Нерд

    Пишу свою прошивку для esp8266. Основная задача прошивки управление реле. Команды для управления поступают в esp8266 по протоколам mqtt и http. Пытаюсь сделать использование протокола mqtt опциональным, для чего использую #ifdef.
    При НЕ подключении библиотеки PubSubClient получаю следующую ошибку:
    Код (Text):
    amarokRelayWithWEB_v2.1:468:3: error: expected '}' at end of input
       }
       ^
    exit status 1
    'webPageMain' was not declared in this scope
    Где я накосячил и почему ошибка появляется при за комментированном #define mqtt?(
    Код прилагаю:
     
  2. Daniil

    Daniil Гуру

    Где-то лишняя или не хватает фигурной скобки
     
  3. BlackWarrior

    BlackWarrior Нерд

    Вот потому и написал сюда. Уже двое суток пытаюсь найти ГДЕ косяк.
     
  4. Daniil

    Daniil Гуру

    строки 192 и 227
     
  5. Daniil

    Daniil Гуру

    На всякий случай поясню (ранее с телефона заходил):
    Код (C++):
    if (!client.connected()) {
        #ifdef mqtt
          Serial.println(F("Connecting to MQTT server"));
          if (client.connect(MQTT::Connect(espName + "_"+ String(WiFi.macAddress()))
                             .set_auth(mqtt_user, mqtt_pass))) {
    //        код, не влияющий на ошибку
          }
        }
        #endif
    У вас #ifdef стоит после скобки и #endif тоже, поэтому когда вы удаляете #define mqtt, то у вас открывающая скобка остаётся, а закрывающая нет.
     
  6. BlackWarrior

    BlackWarrior Нерд

    Спасибо! Исправил