MSPGCC mag nicht

Gast #74882
Lesenswert?
• ▲
▼
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...
Gast #74883
Lesenswert?
• ▲
▼
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...
Admin Persönliche Seite #74884
Lesenswert?
• ▲
▼
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
Gast #74885
Lesenswert?
• ▲
▼
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...
Gast #74886
Lesenswert?
• ▲
▼
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren