Du verwendest avr-g++ ?
Hallo,
weiß vllt jemand, wieso folgendes nicht klappt:
Auf dem PC klappts problemlos, wenn ich jedoch versuche das Programm mit dem GCC zu kompilieren kommt die Meldung cpp:13: undefined reference to `operator new(unsigned int)'" . Wo liegt da das Problem?Code:int main() { int* pi; pi=new int; *pi=10; delete pi; while(1); return 0; };
Danke
MfG Mark
Du verwendest avr-g++ ?
Disclaimer: none. Sue me.
Weil es keine lipsup++ beim avr-gcc gibt. Sprich:
Es gibt kein new und delete. Die C++ Implementierung für den AVR ist nicht vollständig. Gibt hier im Forum und bei mikrocontroller.net einige Threads dazu.
Ja.Zitat von SprinterSB
Gibt es wirklich keine Versionen, die das unterstützen?Zitat von ogni42
MfG Mark
Du kannst Dir die globalen Operatoren ::new und ::delete ja selber schreiben. Für den avr-gcc (bzw. avr-g++) gibt es das nicht. Steht auch so in der FAQ der libc:
http://www.nongnu.org/avr-libc/user-...#faq_cplusplus
Danke für den Link, ich werd ihn mal genau anschauen.
MfG Mark
Mal unabhängig davon: dynamischer Speicher ist auf einem Mikrocontroller i.a. eine ziemlich schlechte Idee. Und gerade in deinem Beispiel gibts ja nun wirklich keinen Grund nicht alles statisch anzulegen ...
Wie man Fragen richtig stellt:
http://www.lugbz.org/documents/smart-questions_de.html
Das oberige Beispiel ist nur eine Reduzierung meins Problems auf ein Minimum. Was ich wirklich mit new und delete anstellen möchte: Ich hab ein Farb-LCD(132x132 Pix). Auf diesem möchte ich sowohl Text als auch Grafik darstellen. Aber Text einfach nur darzustellen reicht mir nicht, ich möchte dass der uC auch weiss, was für Text sich auf dem LCD befindet, damit z.b. beim Löschen des Cursors nicht eine weisse Linie entsteht sondern wirklich der untere Teil des Buchstaben, der zuvor vom Cursor verdeckt wurde(Ich hasse Grafikfehler). Oder aber auch damit ich den Text scrollen kann usw.... Da ich aber wie gesagt auch Grafik darstellen will möche ich eine Funktion OpenConsoleWindow(x,y,Textbreite,Texthöhe) schreiben, die dem Text-Fenster nur soviel Speicherplatz reserviert, wie dieses benötigt. Damit will ich unnötigen Speicherverbrauch vermieden.Zitat von bluebrother
MfG Mark
Warum nicht die Zeichen per XOR Darstellen? Dann brauchst Du keinen zusätzlichen Platz und kannst mit erneutem XOR den Hintergrund wiederherstellen.
Dann muss ich aber wissen, welche Pixel gesetzt sind oder nicht, und bei 132x132=17424 Bytes(im 256-Farben-Modus) würde der RAM nicht reichen. Zudem möchte ich den Text ja wie gesagt scrollen können.
MfG Mark
Lesezeichen