mikrocontroller.net

Forum: Compiler & IDEs wie Assembler messages umleiten?


Autor: Peter Leistikow (leistikow)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.