Rufus Τ. F. schrieb:
> C-Programme werden modular übersetzt. Jedes C-Sourcefile einzeln, und
> das Ergebnis wird vom Linker zusammengesetzt. Du bindest Headerdateien
> (*.h) ein, damit sind die Deklarationen der Funktionen etc. verfügbar,
> aber das instruiert nicht den Compiler, das zugehörige C-Sourcefile zu
> übersetzen und nicht den Linker, das Ergebnis davon zum Endergebnis
> dazuzupacken.
>
> Mit anderen Worten: Du solltest Dir genau ansehen, wie man weitere
> C-Sourcefiles in die Projektverwaltung Deiner IDE einfügt, so daß sie
> übersetzt und das Resultat gelinkt werden.
>
> Sollten die Funktionen, die Du verwendest, bereits in compilierter Form
> als Library vorliegen (nein, das ist nicht eine *.h-Datei, auch wenn
> hier immer mehr Leute unterwegs sind, die das glauben), also einer Datei
> namens *.lib oder *.a (je nach Compiler), dann, und nur dann musst Du
> Deinen Linker dazu instruieren, diese Library zu verarbeiten. Bei gcc
> gibt es die Angewohnheit, nicht den Dateinamen der Library, sondern nur
> einen Teil davon anzugeben; heißt die Datei beispielsweise libfusel.a,
> wird als Linkeroption nur -lfusel angegeben. Andere Compiler mit anderen
> Linkern handhaben das anders, da musst Du in die Dokumentation Deines
> Entwicklungssystems gucken.
Ja das habe ich alles schon, dass ist klar.
Das Problem liegt wo anders. Eigene Dateien (.c/.h) können nicht in
Unterordner gepackt werden, wenn in diesen verlinkungen zu weiteren
Headers stattfindet. Die müssen im Hauptverzeichnis unter Scr/Inc
liegen. Jetzt geht alles; tricky der "Fehler" und für mich nicht ganz
nachvollziehbar.