Пишу свою прошивку для 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?( Код прилагаю:
На всякий случай поясню (ранее с телефона заходил): Код (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, то у вас открывающая скобка остаётся, а закрывающая нет.