einfach headerfiles und die zugehörigen c-files schreiben, schön in einen ordner schieben, die passenden includes in das programm, fertig ist der spuk ... oder versteh ich dich grad falsch ?
Hallo liebe Leute,
kann mir jemand eine Anleitung geben, wie ich eine AVR-C Library selber erstelle und diese auch in einem Projekt zu verwenden. Diese Library soll unabhängig existieren, d.h. jeder andere soll sie ebenfalls sofort für sein Projekt verwenden können. Als Programme sthen mir WinAVR und Eclipse mit den nötigem Plugin zur Verfügung.
Ich hoffe auch schnelle Hilfe.
MfG walkonshit
einfach headerfiles und die zugehörigen c-files schreiben, schön in einen ordner schieben, die passenden includes in das programm, fertig ist der spuk ... oder versteh ich dich grad falsch ?
Falls das, was du geschrieben hast richtig ist, beschreibe es bitte mal genauer, denn so würde ich auch beschreiben, was ich bereits versucht habe, allersdings ohne Erfolg
Was funktioniert denn nicht? Brauchst doch nur das Headerfile mit Definitionen und Prototypen und das Sourcefile mit den entsprechenden Codeschnipseln.. Das Headerfile mit include einbinden und das wars.
Wie bist du denn vorgegangen?
ich habe eine function.c geschrieben mit einer Funktion. In dieser Datei habe ich die header.h includiert. Danach die main.c geschrieben und habe darin leiglich einen Funktionsaufruf dieser Funktion bekomme aber einen make-Fehler
Du musst natürlich die .c Datei auch mit compilieren und im makefile mit angeben. Wenn du ohne makefile arbeitest, dann musst du mal fucken, ob du bei dem Plugin irgendwo weitere Dateien angeben kannst...
Description Resource Path Location Type
make: *** [AVRTest.elf] Error 1 AVR Test 0 C/C++ Problem
make: *** [main.o] Error 1 Main 0 C/C++ Problem
mylib.h: No such file or directory main.c Main 7 C/C++ Problem
Diese Fehler erhalte ich beim kompilieren
Gib mal die ersten paar Zeilen jeder Datei an.
Code:#ifndef MYLIB_H_ #define MYLIB_H_ #endif /* MYLIB_H_ */ int libmylibfunc1(unsigned char);
Code:#include "mylib.h" int libmylibfunc1(unsigned char cParam) { int rVal = 0; rVal = (int)((unsigned int) cParam); return rVal; }so das dürfte das sein was du brauchstCode:#include "mylib.h" int main(void) { return libmylibfunc1('A'); }
Wo befindet sich denn die mylib.h ?
Wenn nicht im selben Ordner wie die main.c, dann musst du ein Compilerflag setzen:
-I ein/ordner
Bzw. irgendwo in dem Plugin suchen, wo man include directories angeben kann.
mfg,
Thomas
Lesezeichen