MSPGCC mag nicht

Gast #74882
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.