dzemdobrek Napisano Listopad 24, 2021 Udostępnij Napisano Listopad 24, 2021 Cześć wszystkim jeszcze raz. Dopiero zacząłem używać Visual Studio i nie do końca jeszcze się z nim zaznajomiłem. Problemem jest to, że nie mogę wgrać na płytkę programu. W konsoli wyskakuje mi takie coś: > Executing task: C:\Users\pawel\.platformio\penv\Scripts\platformio.exe run --target upload < Processing uno (platform: atmelavr; board: uno; framework: arduino) ------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/uno.html PLATFORM: Atmel AVR (3.4.0) > Arduino Uno HARDWARE: ATMEGA328P 16MHz, 2KB RAM, 31.50KB Flash DEBUG: Current (avr-stub) On-board (avr-stub, simavr) PACKAGES: - framework-arduino-avr 5.1.0 - tool-avrdude 1.60300.200527 (6.3.0) - toolchain-atmelavr 1.70300.191015 (7.3.0) LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 5 compatible libraries Scanning dependencies... No dependencies Building in release mode Linking .pio\build\uno\firmware.elf .pio\build\uno\src\Untitled-2.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `setup' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\Untitled-2.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `loop' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\main.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `setup' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\main.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `loop' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\traffic light delay.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `setup' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\traffic light delay.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `loop' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\traffic light state machine ver 1.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `setup' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here .pio\build\uno\src\traffic light state machine ver 1.cpp.o (symbol from plugin): In function `setup': (.text+0x0): multiple definition of `loop' .pio\build\uno\src\Untitled-1.c.o (symbol from plugin):(.text+0x0): first defined here collect2.exe: error: ld returned 1 exit status *** [.pio\build\uno\firmware.elf] Error 1 =================================================================== [FAILED] Took 2.29 seconds ===================================================================Działanie procesu terminalu „C:\Users\pawel\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload'” zostało zakończone z kodem zakończenia: 1. Terminal zostanie ponownie użyty przez zadania. Naciśnij dowolny klawisz, aby go zamknąć. Cytuj Link do komentarza Share on other sites More sharing options...
Matthew11 Listopad 25, 2021 Udostępnij Listopad 25, 2021 @dzemdobrek Twój problem nie dotyczy wgrywania programu tylko występuje już na etapie kompilacji (a dokładnie linkowania). Wygląda to na taką sytuację w której masz plik main.cpp (z funkcjami loop() i setup()) właściwego projektu i masz też drugi plik, ale o innej nazwie, który też zawiera funkcje setup() i loop(). Natomiast wadą i równocześnie zaletą PlatformIO jest to, że kompiluje on wszystkie pliki źródłowe jakie napotka w projekcie - dlatego jeśli masz taką sytuację w której przekopiowałeś pliki jednego projektu do drugiego i zmieniłeś nazwę pliku main.cpp z tego drugiego projektu to będziesz miał błąd linkowania "multiple definition of". Jeśli natknąłeś się na dokładnie taką sytuację to zmień rozszerzenie plików które służą Ci jako odniesienie, lub usuń je z projektu. Jeśli to nie jest powyższa sytuacja to najszybszym testem jest stworzenie nowego projektu na UNO i tam dokonanie próby kompilacji a następnie wgrania programu. Jeśli na czystym projekcie program się buduje i wgrywa to dodawaj pliki jeden po drugim - wtedy znajdziesz problematyczny plik. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!