Forum: Mikrocontroller und Digitale Elektronik Probleme mit AVR Studio 6


von Norbert (Gast)


Lesenswert?

Schönen guten Abend,

ich bin gerade dabei meine C+ Programme etwas ordentlicher zu schreiben,
und zu ordnen.
Ich habe aber immer wieder Probleme die einzelne Header-Dateien 
einzubinden.
Habe auch schon mehrfach hier im Netz gestöbert, ob ich vielleicht was 
übersehen habe oder so..
Aber kann nix finden.

Aus diesem Zweck hab ich mal ein Neues Projekt angelegt und einfach mal 
eine C-Datei und eine H-Datei angelegt.
Und die C-Datei zum Projekt mit dazu genommen, im Solution Explorer.
Und im Hauptprogramm die H-Datei mit include"   .h" eingebunden.

Es kommt trotzdem der Fehler "undefined reference..." ??
obwohl man im VA Outline sehen kann das ich es sauber eingebunden habe 
und die Funktion auch in der H_Datei Vor deklariert habe.
Komischerweise kann ich im Hauptprogramm diese Funktion sogar auswählen,
Weil sie mir das Studio schon vorgibt.
Wenn ich die C_Datei einbinde mit include "  :c" geht es komischer 
weise, aber man soll ja nur H-Dateien einbinden !

Ich weiß, es gibt hier im Forum, mehrere Post davon, hab ich alle schon 
durchgelesen. trotzdem ich weiß nicht weiter ?
Hab ich was falsch gemacht ? oder Übersehen ?

Danke im Vorraus !

von Pete K. (pete77)


Lesenswert?

Ohne weitere Infos schwierig zu diagnostizieren.
Poste mal Deine Files und die Fehlermeldungen.

von Stefan E. (sternst)


Lesenswert?

Was genau soll denn C+ sein?

Wenn du allerdings C und C++ mischt, ohne auf 'extern "C"' zu achten, 
dann bekommst du genau die beschriebenen Symptome.

von Oliver S. (oliverso)


Lesenswert?

Ein "undefined reference" Fehler kommt vom linker, wenn du in deinen 
.c-Dateien eine Funktion aufrufst, die der Linker in allen ihm bekannten 
Dateien nicht finden kann.

Wenn dein Programm nur eine einzige .c- Datei hat, machst du irgend 
etwas grundsätzlich verkehrt. Was genau, weiß die Glaskugel...

Oliver

von Norbert (Gast)


Lesenswert?

Ich glaube das ich das Problem gefunden habe...

man muss bei dem neuem AVR Studio die C-Dateien die man einbinden möchte 
in das Projekt, als *.cpp abspeichern. Dann werden die Dateien auch 
richtig vom Studio erkannt und mit eingebunden.

meine alten Dateien hatten nur die Endung *.c und dann werden diese 
nicht sauber vom Compiler erkannt und eingebunden.

Keine Ahnung warum, aber es geht jetzt.
Muss halt alles neu machen , aber es wird schon.


Gibt es da ein unterschied ob ich eine C_File mache oder CPP_File ?
ist doch egal oder ?

kann man eine C_File auch in ein bestehendes Projekt mit CPP_File 
einbinden ?
das der Compiler das auch erkennt ?


Danke erst mal !

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.