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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.