Forum: Mikrocontroller und Digitale Elektronik C++ Klasse für Mikrocontroller verwenenden


von Jan (Gast)


Lesenswert?

Hallo,
ich habe für ein Bluetothmodul eine Klasse erstellt. Diese möhte ich 
jetzt für mein Mikrocontroller benutzen.
in der main.c steht
1
...
2
class hc06
3
...
4
int main(void)
5
{
6
...
7
hc06 test;
8
...
9
}

beim Kompilieren bekomme ich aber den Fehler "unknown type name 'class'"

habe dann gelesen, dass man keine c, sonder eine cpp machen soll. Also 
habe ich eine main.cpp erstellt und die main.c gelöscht. Jetzt bekomme 
ich aber den Fehler "undefined reference to 'main'".

Wie kann ich die Klasse hinzufügen?

von Dirk F. (Gast)


Lesenswert?

Buch "C++ von Anfang an" Helmut Erlenkötter lesen

von Stefan F. (Gast)


Lesenswert?

Benutze das Makefile aus meiner Kopiervorlage 
http://www.stefanfrings.de/avr_hello_world/index.html Es ist sowohl für 
C als auch für C++ geeignet. Und dann solltest du noch das lesen: 
http://www.atmel.com/webdoc/AVRLibcReferenceManual/FAQ_1faq_cplusplus.html 
und das: https://www.mikrocontroller.net/articles/C%2B%2B

von Ben W. (ben_w)


Lesenswert?

ich würde eifnach schonmal damit anfangen es main.cpp und nicht main.c 
nennen :)

von Jan (Gast)


Lesenswert?

Ben W. schrieb:
> ich würde eifnach schonmal damit anfangen es main.cpp und nicht main.c
> nennen :)

Habe ich ja auch gemacht

Jan schrieb:
> habe dann gelesen, dass man keine c, sonder eine cpp machen soll. Also
> habe ich eine main.cpp erstellt und die main.c gelöscht. Jetzt bekomme
> ich aber den Fehler "undefined reference to 'main'"

von Mark B. (markbrandis)


Lesenswert?

Jan schrieb:
> habe dann gelesen, dass man keine c, sonder eine cpp machen soll. Also
> habe ich eine main.cpp erstellt und die main.c gelöscht. Jetzt bekomme
> ich aber den Fehler "undefined reference to 'main'".

Ich rate mal: Vielleicht hast Du das außerhalb der Entwicklungsumgebung 
von Hand gemacht, und die IDE erkennt das nicht. Daher beschwert sich 
der Linker über die jetzt aus seiner Sicht fehlende main() Funktion.

Oder es stimmt etwas mit den Projekteinstellungen nicht. Leider hältst 
Du geheim, um welche Entwicklungsumgebung es sich handelt.

: Bearbeitet durch User
von Jan (Gast)


Lesenswert?

Mark B. schrieb:
> Ich rate mal: Vielleicht hast Du das außerhalb der Entwicklungsumgebung
> von Hand gemacht, und die IDE erkennt das nicht.

Nein, ich habe in der IDE eine neue Datei erstellt.

Ich benutze Atmel Studio 7. An den Projekteinstellungen habe ich nichts 
geändert.

von Mark B. (markbrandis)


Lesenswert?

Jan schrieb:
> An den Projekteinstellungen habe ich nichts geändert.

Dann wird der Fehler vermutlich hier liegen. Deine Einstellungen passen 
für ein C-Projekt, Du willst aber jetzt ein C++ Projekt bauen.

von Jan (Gast)


Lesenswert?

weisst du auch, was/ wie es geändert werden muss? Habe nämlich nicht 
wirklich was gesehen, was für C bzw. C++ geändert werden muss.

von Mark B. (markbrandis)


Lesenswert?

Jan schrieb:
> weisst du auch, was/ wie es geändert werden muss? Habe nämlich nicht
> wirklich was gesehen, was für C bzw. C++ geändert werden muss.

Zur Not machst Du halt eine Sicherungskopie von Deinen Dateien und legst 
ein neues C++ Projekt an. Die Unterscheidung zwischen C-Projekt und C++ 
Projekt gibt es doch meines Wissens nach im Atmel Studio? Habe es schon 
länger nicht mehr benutzt.

von Kaj (Gast)


Lesenswert?

Jan schrieb:
> weisst du auch, was/ wie es geändert werden muss? Habe nämlich nicht
> wirklich was gesehen, was für C bzw. C++ geändert werden muss.
Du musst ein C++-Projekt erzeugen.
Neues Projekt -> C++...

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.