qwertz schrieb:
> google hat mir eigentlich nicht sehr geholfen
>
> Diese Fehlermeldung kommt doch eigentlich, wenn ich keinen prototypen
> der funktion habe, aber der ist vorhanden und die header ist
> eingebunden.
Das reicht aber nicht.
Das befriedigt nur den Compiler, wenn er das C-File compiliert, welches
die Funktionen verwenden will.
Aber
* das C-File mit den eigentlichen Funktionen muss ja ebenfalls
compiliert werden
* der Linker muss wissen, dass er dieses bereits compilierte File mit
den Funktionen dann auch zum kompletten Programm mit dazunehmen muss.
> Ich versteh nicht was ich falsch gemacht haben soll.
Du hast das C-File nicht mit zu den zu diesem Projekt gehörenden Source
Code Files in der Projektverwaltung mit aufgenommen.
Daher sorgt die Projektverwaltung nicht dafür, dass dieses C-File auch
compiliert wird. Daher wird dann das Ergebnis davon nicht mit ins
fertige Programm aufgenommen.
Folge: Der Linker versucht das Programm vollständig zu machen, kann es
aber nicht, weil der die Implementierungen der Funktionen nicht findet.
Als Folge davon teilt er dir dies mit - in Form einer Fehlermeldung
'undefined reference'. Im restlichen Programm ist eine Referenz auf
Funktionen enthalten 'Ich würde gerne xyz aufrufen', aber die Funktionen
selbst existieren nicht (sind 'undefined').
D.h. sie sind ja nicht wirklich 'nicht existent'. Nur weiß kein Schwein
ausser dir, dass dieses C-File ebenfalls mit zum Projekt gehört. Du
kannst auf deinem Verzeichnis 300 Millionen C-Files rumliegen haben;
deswegen werden die noch lange nicht automatisch compiliert und mit
dazugelinkt. Du musst schon deiner Projektverwaltung mitteilen: "Das
gehört mit dazu und das ebenfalls" - die restlichen 299999998 C-Files
werden dann einfach ignoriert, weil sie ja nicht zum Projekt gehören.
Nimm das C-File mit in die Projektverwaltung auf und alles ist gut -
solange du keine Syntaxfehler in den Funktionen hast und alles sauber
compiliert, natürlich.