www.mikrocontroller.net

Forum: Compiler & IDEs GCC - Linker-Steuerdatei


Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !

wer kann mir sagen, wie ich dem GCC-Linker eine Steuerdatei angeben
kann, um so lange aufrufe wie z.b. das folgende abzukürzen :


avr-gcc datei_1.o datei_2.o datei_3.o datei_4.o datei_5.o datei_6.o
-Wl,-Map=..\M\mapfile.map, -o..\M\elffile.elf --cref
-mmcu=atmega64


stattdess würde ich lieber schreiben:

avr-gcc ....steuerdatei.xyz


Gruß Martin

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Was spricht denn gegen ein makefile oder ein Shell/Pearl/sonstwas
Script?

Matthias

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst es so machen, wie ich:

avr-gcc.exe -xc -Os -mmcu=atmega8 -Wall -g -o main.out *.c

Damit werden alle C-Dateien im aktuellen Verzeichnis compiliert und
zusammen gelinkt.

Eine Kommandozeilenverlängerung kennt der GCC nicht, da er nicht aus
der DOS/Windows-Welt kommt.

Du kannst aber auch eine lange Zeile komplett in eine *.bat Datei
schreiben und diese dann aufrufen.

Willst Du dann noch Teile variabel halten, könne diese als Argument
übergeben werden (%1..%9).

Peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

was ist denn eine Kommandozeilenverlängerung?

Matthias

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias

Beim Keil C51 kann man in der Kommandozeile ein @ gefolgt von einem
Dateinamen angeben.

Dann wird alles in dieser Datei so behandelt, als hätte es in der
Kommandozeile gestanden.

Man kann dann in dieser Datei die Argumente untereinander schreiben,
damit es leserlicher wird.

Z.B. nutze ich es dazu, um in einer Datei alle *.obj zu sammeln und
diese Datei wird dann dem Linker übergeben:

for %%f in ( *.obj ) do echo %%f, & >> l51tmp.tmp
l51.exe @l51tmp.tmp


Peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Nur so nebenbei:
Was übergiebt Windows eigentlich beim Aufruf eines Programms mittels
*.c? Übergibt es *.c als ein Argument oder alle auf den Filter
passenden Dateien als Einzelparameter?
Hab gerade keinen nativen Windows-Compiler da um das mal zu testen.

Matthias

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
,,Kommandozeilenverlängerung'':

Die schreibt sich unter Unix (und das haben wir hier implizit, sofern
die bash.exe benutzt wird -- make.exe benutzt ebendiese) halt

avr-gcc `cat foo.cmds`

oder wahlweise

avr-gcc $(cat foo.cmds)

Dadurch muß das (anders als unter MS-DOS) nicht jedes Tool für sich
einzeln behandeln.

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.