Hallo zusammen! Ich habe mir das MSPGCC-Packet auf mein Win2k System installiert und wollte jetzt endlich meine Projekte darauf umstellen, aber leider mag der Compiler nicht :( Ich habe in den default-ordner installiert und vorher noch MinGW updated. Wenn ich den Compiler aus dem /bin Verzeichnis starte, dann läuft er, wenn ich ihn aber aus irgend einem anderen Verzeichnis starte, kommt die Fehlermeldung, daß "asprintf" nicht in der cygwin1.dll gefunden werden konnte... Ich vermute, daß er die cygwin1.dll gar nicht siht... was jetzt? Gruß, Patrick...
Hi nochmal! Der compiler läuft jetzt! Allerdings gibts da mittlerweile ein anderes Problem: test.o: In function `main': test.o(.text+0x8e6): undefined reference to `puts' test.o(.text+0x8fa): undefined reference to `puts' test.o(.text+0x910): undefined reference to `puts' test.o(.text+0x918): undefined reference to `puts' test.o(.text+0x97c): undefined reference to `puts' test.o(.text+0xa8e): more undefined references to `puts' follow Ich habe eine eigene (mit IAR funktionierende) printf-implementation und es sieht so aus, als ob dieses 'puts' das symbol für mein printf ist... Beim Kompilieren kommt kein fehler, erst beim linken... Gruß, Patrick...
Zu deinem ersten Problem: Ich vermute dass sich noch eine alte Cygwin-DLL irgendwo in deinem Windows-Verzeichnis befindet. Ersetze sie durch die beim Compiler mitgelieferte, dann sollte es klappen. MSPGCC kennt keine Funktion puts, die musst du für das gewünschte Ausgabegerät selber schreiben. Aber wahrscheinlich musst du deine printf-Funktion überhaupt nicht portieren, es gibt bereits uprintf() in der MSPGCC-Standard-Library: http://mspgcc.sourceforge.net/manual/x1108.html
Hallo Andreas! Also: Die printf-routine wird nicht auf puts zurückgeführt! Der Pfad müsste ungefähr so aussehen: printf -> print -> print[s|i|l] -> printchar -> putchar putchar ist ein PP-Makro und ist so definiert: #define putchar(c) TXBUF0 = c; \ while ((IFG1 & UTXIFG0) == 0) Ich weis nicht mal, wo der compiler das puts her nimmt... Gruß, Patrick...
Hi nochmal! Ich habe so die vermutung, daß der Compiler sich irgendwo her ein anderes printf holt! Wenn ich mein printf umbenenne, dann kommt dieser Fehler nicht! Aber wo her? Gruß, Patrick...
Der Compiler darf alle Standardfunktionen intern ersetzen, deshalb muss man für selbstgeschriebene Funktionen andere Namen wählen.
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.