Hallo, ich portiere gerade eine Routine von gcc nach avr-gcc. Mein cu (gcc) test läuft super, bis ich das ganze dann unter avr-gcc übersetzen lasse. Ich erhalte die Fehlermeldung: undefined reference to `asprintf' Ich verwende avr-gcc (GCC) 4.6.2 und CrossPack for AVR Development 20130212. Gibt es kein asprintf unter avr oder habe ich nur vergessen etwas einzubinden? Besten Dank, ps
Evtl hier ein ähnliches Problem? Beitrag "AVR: undefined reference to `__muluhisi3'"
asprintf gibts bei avrgcc nicht. Nimm einfach sprintf
Timmo H. schrieb: > asprintf gibts bei avrgcc nicht. Nimm einfach sprintf Hallo Timmo, ja das wird dann die Lösung sein, aber so einfach geht das dann wohl nicht, denn asprintf reallociert ja noch Speicher. Beim String concatinieren eventuell nicht effizient aber im code ein wenig poetischer. Ok, da ich es eh umschreiben muss, wie würdet ihr diese Funktion lösen: ich gebe ein leeres char* rein, innerhalb iteriert er über ein Baum und füllt das char * in jeder Runde mit ein paar Werten. Nach dem aufruf der Funktion ist also die Übergebene Referenz mit einer Anzahl an Zeichen gefüllt, die ich vorher nicht kennen kann. Diese kann ich dann ausgeben (Display, UART, whatever). Danke euch.
Timmo H. schrieb: > Nimm einfach sprintf Bzw. snprintf(). Im Prinzip kann man mit snprintf() auch ein asprintf() emulieren, wenn man das unbedingt will: . einmal snprintf mit einer Länge von 0 aufrufen, . der Rückgabewert beschreibt die notwendige Länge, . diese Länge wird mit malloc() alloziert, . snprintf() wird noch einmal auf den Puffer aufgerufen.
Ah ok, Danke sehr. so wird es gehen. Lieben Gruß und einen schönen Sonntag. ps
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.