GCC - Linker-Steuerdatei

Gast #177554
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
#177556
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
#177558
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
Gast #177559
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
Gast #177560
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

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