Hallo! Ich versuche gerade ein Projekt für einen AVR in C++ zu realisieren, um Klassen und Vererbung nutzen zu können. In diesem Projekt wollte ich auch einige Daten im Programmspeicher des AVR ablegen (hauptsächlich String-Konstanten). Sobald allerdings die Headerdatei <avr/pgmspace.h> einbinde, gibt der Compiler folgende Fehlermeldungen aus: avr-g++.exe -mmcu=atmega8 -Wall -gdwarf-2 -DF_CPU=4000000UL -Os -fsigned-char -x c++ -MD -MP -MT sideboard.o -MF dep/sideboard.o.d -c ../sideboard.c In file included from ../uart.h:17, from ../sideboard.c:7: C:/Programme/WinAVR/avr/include/avr/pgmspace.h:104: error: expected unqualified-id before string constant In file included from ../sideboard.c:7: ../uart.h:38: error: expected `,' or `...' before '*' token ../uart.h:38: error: ISO C++ forbids declaration of `prog_char' with no type make: *** [sideboard.o] Error 1 Build failed with 3 errors and 0 warnings... Ich verwende den gcc mit der Option "-x c++" Hilfe!!! Vielen Dank schonmal im Voraus!
hallo, poste bitte kurz den zugeörigen quellcode, besser den entsprechenden ausschnitt daraus. bye ksomo
> Hast Du die C Header-Dateien mit extern "C"{...} eingebunden?
Wofür soll das gut sein?
Die avr-libc-Dateien sollten alle C++-fest sein.
...heute hab ich den Code auf der Arbeit durch den avr-gcc gejagt und hier compiliert alles anstandslos, obwohl ich die gleichen Versionen von WinAVR und AVR-Studio drauf hab. Ist zwar seltsam, aber der Fehler liegt dann wohl ganz woanders. Da steht wohl ne Neuinstallation von allem AVR-Zeugs an. Sorry wegen der Störung!
> Die avr-libc-Dateien sollten alle C++-fest sein. OK, ich nutze noch eine alte libc (1.2.3) Aber da steht in der FAQ: >Some of the supplied include files are not C++ safe, i. e. they need to be wrapped into >extern "C" { . . . } >(This could certainly be fixed, too.) Daher meine Frage. (OK, me=Faultier könnte mal auf eine neue libc wechseln)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.