Wie man Arduino / PlatformIO undefined reference to `loop()' behebt

English Deutsch

Problem:

Beim Versuch, Ihr Arduino- oder PlatformIO-Projekt zu kompilieren, sehen Sie eine Fehlermeldung wie

linker_error_ld.txt
/home/uli/.platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev/libFrameworkArduino.a(main.cpp.o):(.literal._Z8loopTaskPv+0x8): undefined reference to `loop()'

Lösung

Sie haben keine loop()-Funktion in Ihrem Quellcode deklariert. Öffnen Sie main.cpp oder Ihre .ino-Quellcode-Datei und beginnen Sie mit der folgenden (leeren) loop()-Funktion, die nichts tut:

empty_loop_example.cpp
void loop() {
    // Nothing to do here since HTTPServer
    // is running in a separate thread
    delay(1000);
}

Nachdem Sie eine beliebige void loop() { /* ... */}-Funktion zu Ihrem Quellcode hinzugefügt haben, versuchen Sie erneut zu bauen/hochzuladen und die Fehlermeldung sollte verschwunden sein.

Wenn Sie möchten, können Sie auch Code hinzufügen, um bei jedem Schleifendurchlauf eine Nachricht an den seriellen Port zu senden:

loop_with_serial_example.cpp
void loop() {
    // Nothing to do here since HTTPServer
    // is running in a separate thread
    Serial.println("Hello world!");
    delay(1000);
}

Check out similar posts by category: Arduino, C/C++, PlatformIO