Forum: Compiler & IDEs pgmspace mit C++


von Andy (Gast)


Lesenswert?

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!

von Joe D. (kosmonaut_pirx)


Lesenswert?

hallo,
poste bitte kurz den zugeörigen quellcode, besser den entsprechenden 
ausschnitt daraus.
bye ksomo

von Ingo E. (ogni42)


Lesenswert?

Hast Du die C Header-Dateien mit extern "C"{...} eingebunden?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> 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.

von Andy (Gast)


Lesenswert?

...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!

von Ingo E. (ogni42)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.