Ошибка компиляции Β«was not declared in this scopeΒ»** β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых распространённых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ программисты Π½Π° C++, Arduino ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ AVR. Π’ дословном ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π° русский ΠΎΠ½Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Β«Π½Π΅ объявлСно Π² Π΄Π°Π½Π½ΠΎΠΉ области видимости». Но Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ ΠΊΠ°ΠΊ быстро ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ это сообщСниС, компилятор сигнализируСт: Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Β«Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Β». ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ β€” ΠΎΡ‚ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Π΄ΠΎ отсутствия ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ 7 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ошибки ΠΈ Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈΒ». ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ нюансам для Arduino IDE ΠΈ PlatformIO, Π³Π΄Π΅ ошибка встрСчаСтся Ρ‡Π°Ρ‰Π΅ всСго.

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«was not declared in this scopeΒ» Π½Π° русском?

Π€Ρ€Π°Π·Π° was not declared in this scope Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ пСрСводится ΠΊΠ°ΠΊ Β«Π½Π΅ объявлСно Π² этой области видимости»**. Π’ контСкстС программирования это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚:

  • πŸ” ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² ΠΊΠΎΠ΄Π΅.
  • πŸ“ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ области видимости (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ° {}).
  • πŸ“œ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, #include <Library.h>).
  • πŸ–₯️ Для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²: Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ»ΠΈ ядро (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ESP32 вмСсто AVR).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ошибки Π² Arduino IDE:

sketch.ino:10:5: error: 'Serial1' was not declared in this scope

Serial1.begin(9600);

^~~~~~

Π—Π΄Π΅ΡΡŒ компилятор сообщаСт, Ρ‡Ρ‚ΠΎ Serial1 Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°? На ΠΏΠ»Π°Ρ‚Π°Ρ… Ρ‚ΠΈΠΏΠ° Arduino Uno Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Serial, Π° Serial1 доступСн лишь Π½Π° Mega ΠΈΠ»ΠΈ ESP32.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с этой ошибкой?
  • Arduino (AVR)
  • ESP32/ESP8266
  • STM32
  • Raspberry Pi Pico
  • Другая

Π’ΠΎΠΏ-7 ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ

Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ самыС частыС сцСнарии возникновСния ошибки ΠΈ способы ΠΈΡ… устранСния. НачнитС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° β€” часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π·Π° 1–2 шага.

1. ΠžΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Бамая банальная, Π½ΠΎ ΠΈ самая распространённая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ чувствитСлСн ΠΊ рСгистру ΠΈ символам. НапримСр:

int myVar = 10;

print(myvar); // Ошибка: 'myvar' Π½Π΅ объявлСно (ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: myVar)

  • βœ… ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ рСгистр Π±ΡƒΠΊΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, digitalWrite β‰  Digitalwrite).
  • βœ… Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π»ΠΈΡˆΠ½ΠΈΡ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, delay(); vs delay ;).
  • βœ… Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² IDE (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² VS Code ΠΈΠ»ΠΈ PlatformIO).
πŸ’‘

Π’ Arduino IDE Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Shift+F для глобального поиска ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ всС упоминания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

2. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· внСшнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, LiquidCrystal для дисплССв ΠΈΠ»ΠΈ WiFi.h для ESP32), Π½ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

LCD.begin(16, 2); // Ошибка: 'LCD' нС объявлСно

// Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅:

#include <LiquidCrystal.h>

LiquidCrystal LCD(12, 11, 5, 4, 3, 2);

Для популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ:

БиблиотСкаЗаголовокВипичная ошибка
Π Π°Π±ΠΎΡ‚Π° с Wi-Fi (ESP)#include <WiFi.h>'WiFi' was not declared
ДисплСй LCD 1602#include <LiquidCrystal.h>'LiquidCrystal' was not declared
Π Π°Π±ΠΎΡ‚Π° с EEPROM#include <EEPROM.h>'EEPROM' was not declared
Π‘Π΅Ρ€Π²ΠΎΠΏΡ€ΠΈΠ²ΠΎΠ΄Ρ‹#include <Servo.h>'Servo' was not declared
Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² Arduino IDE?

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π‘ΠΊΠ΅Ρ‚Ρ‡ β†’ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ β†’ Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Π’ поисковой строкС Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, LiquidCrystal) ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ объявлСна Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ области видимости

Π’ C++ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ° {}, Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ Π·Π° ΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ошибки:

void setup() {

int x = 10;

}

void loop() {

Serial.println(x); // Ошибка: 'x' Π½Π΅ объявлСно Π² этой области

}

РСшСния:

  • 🌍 ΠžΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ глобально (ΠΏΠ΅Ρ€Π΅Π΄ setup()).
  • πŸ”„ ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • πŸ“¦ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ static для сохранСния значСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.
πŸ’‘

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ постоянно. Для экономии рСсурсов ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости.

4. НСсоотвСтствиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ядра

НСкоторыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Π°Ρ…. НапримСр:

  • πŸ”Œ Serial1, Serial2 β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Arduino Mega ΠΈΠ»ΠΈ ESP32.
  • πŸ“‘ WiFi β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ESP8266/ESP32, Π½ΠΎ Π½Π΅ Π½Π° AVR (Uno, Nano).
  • πŸ–₯️ USB β€” Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Native USB (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino Leonardo).

РСшСниС: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π² Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ ΠŸΠ»Π°Ρ‚Π°. НапримСр, для ESP32 Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ядро esp32 Ρ‡Π΅Ρ€Π΅Π· Board Manager.

Π’Ρ‹Π±Ρ€Π°Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Π° Π² Arduino IDE|

ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ тСхничСскиС характСристики ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°|

УстановлСны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ядра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, esp32 для ESP32)|

Π—Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-зависимыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅-->

5. Ошибка Π² порядкС объявлСний

Π’ C++ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΄ΠΎ использования. Випичная ошибка:

void loop() {

myFunction(); // Ошибка: 'myFunction' нС объявлСно

}

void myFunction() {

// ...

}

РСшСния:

  • πŸ“ ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ Π΅Ρ‘ Π²Ρ‹Π·ΠΎΠ²Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π΄ setup()).
  • πŸ”— Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
// ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ

void myFunction();

void setup() {

myFunction(); // Π’Π΅ΠΏΠ΅Ρ€ΡŒ ошибки Π½Π΅Ρ‚

}

void myFunction() {

// ...

}

6. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΡ‘Π½ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами

Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ слова C++ Π² качСствС ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр:

int void = 10; // Ошибка: 'void' β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово

int class = 5; // Ошибка: 'class' β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов: auto, break, case, class, const ΠΈ Π΄Ρ€. (всСго ~90 слов).

πŸ’‘

Если Π²Ρ‹ случайно использовали ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ прСфикс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: myClass вмСсто class.

7. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с пространствами ΠΈΠΌΡ‘Π½ (namespace)

Π’ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Standard Template Library) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ пространство ΠΈΠΌΡ‘Π½. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

string s = "Hello"; // Ошибка: 'string' нС объявлСно

// Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅:

#include <string>

std::string s = "Hello";

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ для стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (cout, vector), Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ std:: ΠΈΠ»ΠΈ объявлСниС using namespace std; (Π½Π΅ рСкомСндуСтся Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…).

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ошибки Π² Arduino IDE ΠΈ PlatformIO

Π’ срСдах для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ошибка was not declared in this scope часто ΠΈΠΌΠ΅Π΅Ρ‚ спСцифичСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

Arduino IDE: Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈΒ»

  • πŸ“Œ НСсоотвСтствиС вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. НапримСр, старая вСрсия ESP8266WiFi ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • πŸ”Œ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΈΠ½. На Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ESP32) нумСрация Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² отличаСтся ΠΎΡ‚ AVR.
  • πŸ“‚ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΡ‘Π½ с встроСнными функциями. НапримСр, нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ millis ΠΈΠ»ΠΈ delay.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для ESP32:

#include <WiFi.h>

void setup() {

WiFi.begin("SSID", "password"); // Ошибка, Ссли Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΠ»Π°Ρ‚Π° ESP32

}

PlatformIO: Π½ΡŽΠ°Π½ΡΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

Π’ PlatformIO ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΠ·-Π·Π°:

  • πŸ“„ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² platformio.ini.
  • πŸ”— ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡ зависимости Π² lib_deps.
  • πŸ“¦ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° вСрсий Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ platformio.ini для ESP32:

[env:esp32dev]

platform = espressif32

board = esp32dev

framework = arduino

lib_deps =

WiFi

πŸ’‘

Π’ PlatformIO всСгда провСряйтС Π²Ρ‹Π²ΠΎΠ΄ консоли послС компиляции β€” Ρ‚Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ подсказки ΠΎ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… зависимостях.

Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибки Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ: 5 профилактичСских ΠΌΠ΅Ρ€

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риск ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с was not declared in this scope, слСдуйтС этим ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ:
    • πŸ“› ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: camelCase (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sensorValue).
    • 🏷️ ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹: UPPER_CASE (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MAX_TEMP).
    • πŸ“š Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: camelCase с Π³Π»Π°Π³ΠΎΠ»ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, readSensor()).
  • ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π° β€” Ρ‚Π°ΠΊ ΠΈΡ… Π»Π΅Π³Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° синтаксис с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Clang-Tidy ΠΈΠ»ΠΈ Cppcheck.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ #ifdef для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-зависимого ΠΊΠΎΠ΄Π°:
    #ifdef ESP32
    

    #include <WiFi.h>

    #else

    #include <Ethernet.h>

    #endif

  • ВСстируйтС ΠΊΠΎΠ΄ Π½Π° минимальном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π² большой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
  • πŸ’‘

    Π’ VS Code с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ PlatformIO Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F1 β†’ PlatformIO: Check для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° ошибки.

    Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ диагностика: инструмСнты для поиска ΠΏΡ€ΠΈΡ‡ΠΈΠ½

    Если стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти инструмСнты для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ диагностики:

    Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠšΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΠ§Ρ‚ΠΎ ΠΈΡ‰Π΅Ρ‚
    Arduino CLIarduino-cli compile --verboseΠ”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΎΠ³ΠΈ компиляции
    PlatformIOpio run -vΠŸΠΎΠ»Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ошибок с путями
    GCC/G++g++ -E myfile.cppΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСпроцСссора (подстановка #include)
    Cppcheckcppcheck --enable=all myfile.cppБтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Arduino CLI для диагностики:

    $ arduino-cli compile --verbose sketch.ino
    

    [...]

    sketch.ino:15:10: error: 'myVar' was not declared in this scope

    int x = myVar + 1;

    ^~~~~

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ строки (15:10) β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

    Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ компилятора?

    ΠŸΠ΅Ρ€Π²Π°Ρ строка β€” ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки с ошибкой.

    Вторая строка β€” ΠΊΠΎΠ΄ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСста (символ ^).

    Π’Ρ€Π΅Ρ‚ΡŒΡ строка β€” сообщСниС ΠΎΠ± ошибкС.

    FAQ: ЧастыС вопросы ΠΏΠΎ ошибкС Β«was not declared in this scopeΒ»

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ ошибка появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ компиляции Π½Π° ESP32, Π½ΠΎ Π½Π΅ Π½Π° Arduino Uno?

    ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ AVR (Uno/Nano) ΠΈ ESP32 ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ядра ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НапримСр, Π½Π° ESP32 Π½Π΅Ρ‚ analogWrite() для всСх Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ШИМ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Espressif.

    Π― ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π½ΠΎ ошибка ΠΎΡΡ‚Π°Π»Π°ΡΡŒ. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?

    Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ:

    1. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° установлСна Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ~/Arduino/libraries/ для Arduino IDE).
    2. Π’Ρ‹ пСрСзапустили IDE послС установки.
    3. ВСрсия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ совмСстима с вашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ library.properties).
    4. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° остаётся, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ явно:

      #include "ΠΏΡƒΡ‚ΡŒ/ΠΊ/Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅/MyLibrary.h"
    МоТно Π»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ?

    НСт. Ошибка was not declared in this scope β€” это критичСская ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° компиляции. Код Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π΅Ρ‘ Π½Π΅ исправитС. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ (warnings), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, эта ошибка Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    Как Π½Π°ΠΉΡ‚ΠΈ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ объявлСна пСрСмСнная/функция?

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ поиска ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ (Ctrl+Shift+F Π² Arduino IDE ΠΈΠ»ΠΈ VS Code). Если пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‘ исходный ΠΊΠΎΠ΄ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ src/ ΠΈΠ»ΠΈ .h-Ρ„Π°ΠΉΠ»Π°Ρ…).

    Для систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, digitalWrite) смотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ:

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ ошибка появляСтся послС обновлСния Arduino IDE?

    ОбновлСниС IDE ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ:

    • πŸ”„ ИзмСнСнию вСрсий встроСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, WiFi.h для ESP32).
    • πŸ“Œ УдалСнию ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Streaming.h большС Π½Π΅ поддСрТиваСтся).
    • πŸ–₯️ ИзмСнСнию ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ ядрам ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.
    • РСшСниС: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π‘ΠΊΠ΅Ρ‚Ρ‡ β†’ Include Library β†’ Update All ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° остаётся, ΠΎΡ‚ΠΊΠ°Ρ‚ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ IDE.

    Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: Алгоритм дСйствий ΠΏΡ€ΠΈ ошибкС

    Π§Ρ‚ΠΎΠ±Ρ‹ быстро Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ was not declared in this scope, слСдуйтС этому Ρ‡Π΅ΠΊ-листу:

    1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ/Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    2. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
    3. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости (глобальная vs локальная пСрСмСнная).
    4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ (AVR/ESP32/STM32).
    5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ пСрСноситС объявлСния Π²Ρ‹ΡˆΠ΅.
    6. АнализируйтС Π²Ρ‹Π²ΠΎΠ΄ компилятора для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ошибки.

    Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ β€” Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ тСстируйтС ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ 90% случаСв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 3 ΡˆΠ°Π³Π°Ρ….

    πŸ’‘

    Бамая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ошибки β€” ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° ΠΈΠ»ΠΈ Π·Π°Π±Ρ‹Ρ‚Ρ‹ΠΉ #include. НачнитС диагностику с этого!