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
Hi Was spricht denn gegen ein makefile oder ein Shell/Pearl/sonstwas Script? Matthias
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
@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
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
,,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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.