Forum: Compiler & IDEs gcc kompilieren kürzen


von Stefan S. (sschultewolter)


Lesenswert?

Hallo,

ich nutze auf den RaspberryPi gcc zum kompilieren von C-Programmen.

Derzeit kompiliere ich das ganze über das Terminal mit
1
sschultewolter@raspberrypi:~$ clear && gcc -o lcd gcc/lcd/main.c gcc/lcd/lcd_core.c -lpigpio -lpthread -lrt && sudo ./lcd

Kann man das ganze verkürzen? Es geht hierbei nicht um das löschen des 
Terminalinhalts oder dem ausführen. Es wird bei größeren Programmen mit 
mehreren *.c Dateien im Terminal schnell unübersichtlich.

Ein Test hatte ich mit -o /gcc/lcd/*.c bereits versucht, das klappt aber 
nicht. In der Help ist leider auch kein Punkt hinterlegt, bei dem man 
alle c-Dateien innerhalb eines Ordner mitläd (inkl. Unterordner).


Gruß Stefan

von Peter II (Gast)


Lesenswert?

leg doch einfach ein makefile an.

dann brauchst du noch make aufrufen.

von mf (Gast)


Lesenswert?

Stefan S. schrieb:
> Kann man das ganze verkürzen?
Makefile

von Tobi (Gast)


Lesenswert?

Schau dir mal makefiles an.
In das makefile schreibt du alle ingos die zum kompilieren notwendig 
sind und musst nur in der Konsole make eingeben.

von Stefan S. (sschultewolter)


Lesenswert?

Automatisch nach den c-Dateien suchen geht vermutlich dort auch nicht. 
Aber ich schaue mir erst einmal das mit dem makefile an ;)

Danke vorab

von Yalu X. (yalu) (Moderator)


Lesenswert?

Stefan S. schrieb:
> Ein Test hatte ich mit -o /gcc/lcd/*.c bereits versucht, das klappt aber
> nicht.

Du hast dabei den Ausgabedateinamen (lcd) unterschlagen. Außerdem ist
der erste Slash in /gcc/lcd/*.c zuviel. Zum Glück! Denn sonst hätte es
dir – wenn das Programm erfolgreich gebaut wurde – möglicherweise dein
gcc/lcd/lcd_core.c zerschossen, weil diese Datei als Ausgabedatei
genommen wird.

Richtig wäre

... -o lcd gcc/lcd/*.c ...

von Stefan S. (sschultewolter)


Lesenswert?

Hallo yalu,

wollte gerade schon sagen, was hast du dir beisammen gereimt, sehe aber, 
ich habe oben das ganze falsch angegeben. doofes abkürzen

Es war wie du sagtest gemeint gcc -o <outfile> gcc/lcd/*.c

Edit: Das mit *.c reicht doch scheinbar aus ;) kann mir das make "noch" 
ersparen.

von (prx) A. K. (prx)


Lesenswert?

Spätestens beim RPI2 wird das Make doch sinnvoll sein. Denn dann kannst 
du per -j die Cores parallel nutzen.

von Stefan F. (Gast)


Lesenswert?

Hier hast du ein Beispiel-Makefile: 
http://stefanfrings.de/avr_hello_world/

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
Noch kein Account? Hier anmelden.