wie Assembler messages umleiten?

OP #829311
Hallo,

wie kann man dem WinAVR-2008-04-02 beibringen, wo "assembler messages"
abgelegt werden sollen?

Derzeit landen solche Meldungen in irgendeiner Schmutzecke des 
Windowsrechners
(C:/Dokumente und Einstellungen/nnB386~1~/Lokale~1../Temp  usw. usf.
unter irgendeiner Nummer, die es dann gar nicht gibt.

Kann man make.exe entsprechend beeinflussen?

Ich habe übrigens make.exe in das lokale Verzeichnis kopiert, damit es 
nicht mit den make.exe aus den älteren WinAVR-Versionen kollidiert, die 
sich noch auf dem Rechner befinden (in der Hoffnung, daß ich vielleicht 
doch noch die alten Programme ändern und wieder kompilieren kann).

Viele Grüße
Peter
Moderator Persönliche Seite #829491
Peter Leistikow wrote:

> wie kann man dem WinAVR-2008-04-02 beibringen, wo "assembler messages"
> abgelegt werden sollen?

Die werden gar nicht abgelegt, sondern landen auf stderr.  Dort zeigt
sie dir dann normalerweise deine IDE an.

> Derzeit landen solche Meldungen in irgendeiner Schmutzecke des
> Windowsrechners
> (C:/Dokumente und Einstellungen/nnB386~1~/Lokale~1../Temp  usw. usf.
> unter irgendeiner Nummer, die es dann gar nicht gibt.

Das ist der Name einer temporären Datei.  Die heißt temporär, weil
sie nachher wieder gelöscht wird...  Es gibt zwei Wege, wie man diese
Dateien erhalten kann.  Erstens kannst du die Compileroption -c durch
ein -S ersetzen, dann hört der Compiler mit der Arbeit auf, nachdem
er die Assemblerdatei generiert hat.  (Normalerweise legt er diese
eben nur als temporäre Datei ab, und startet danach sofort den
Assembler.)  Du solltest ansonsten die gleichen Optionen benutzen,
außer dass du natürlich die Option »-o dateiname « anpassen musst
oder sie ganz weglassen, dann wird eine Datei mit dem Suffix .s
angelegt.

Bei gleichen Optionen kannst du dann an Hand der Zeilennummer, die
du ja schon aus deinen Assemblermeldungen kennst, rausfinden, was
das Problem war.

Die zweite Variante ist, dass du in die Optionen für den C-Compiler
die Option »-save-temps« mit aufnimmst.  Dann verzichtet der Compiler
darauf, alle temporären Dateien, die während des Compilierens
entstehen, irgendwie zu löschen.  Sie bleiben stehen, und du musst
sie dann irgendwann mit der Hand löschen.

Falls deine assembler message ein "Operation dangerous with linker
stubs" ist, dann kannst du darauf verzichten, dir das anzugucken.
Diese Meldung sollte eigentlich besser gar nicht existieren, da sie
nur mehr verwirrt als wirklich hilft, sie ist aus Versehen wieder in
den Code des Assemblers reingeschlittert.  Da gibt's schon einen
Bugreport bei den GNU Binutils, der zum Entfernen der Meldung führen
soll.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.