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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jan (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Buch "C++ von Anfang an" Helmut Erlenkötter lesen

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht 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)


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

von Jan (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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++...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.