Forum: Compiler & IDEs SDCC Compile in Linux Shell führt nur die letzte Zeile aus


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich probiere gerade Linux aus und habe da eine Frage zu SHELL script.

Ich benutze für ST Programmieren SDCC compiler 
http://sdcc.sourceforge.net/

Nun wollte ich auf Linux meine Files kompelieren, in dem ich einen SHELL 
Script erstelle und ausführe. Soweit alles so gut, SHELL Script lässt 
sich ausführen und die Befehle lassen sich einzeln ausführen.

Wenn ich aber alle Befehle in einem SHELL Script (siehe Anhang) habe, 
wird nur der letzte Befehl (sdcc -mstm8 --std-c99 -o debug/ -c 
logical.c) ausgeführt.

Was mache ich falsch mit dem SHELL Script? Muss man da irgendwie eine 
Pause zwischen den Befehlen beachten?

Gruß
Stefan

von pegel (Gast)


Lesenswert?

Warum nimmst du kein makefile?
Ein Beispiel gibt es hier:
https://gist.github.com/mour/9b42a5762eef09bef07f

Das lässt sich noch gewaltig abspecken wenn es sein muss.

von Slippin J. (gustavo_f)


Lesenswert?

Wie startest du das Shell-Script? So:
1
sh compile.sh

Pack mal in die erste Zeile des Scripts dieses Shebang rein:
1
#!/bin/sh

und mach das Script ausführbar (chmod +x compile.sh) und starte es mal 
mit ./compile.sh.

Wenn das auch nicht klappt, versuch mal compile.sh zu sourcen:
1
. ./compile.sh

Falls das auch nicht klappt, weiß ich auch nicht weiter.

: Bearbeitet durch User
von EndeDerVernunft (Gast)


Lesenswert?

Unpassende Zeilenende provozieren die drolligsten Effekte...

von Georg B. (diereinegier)


Lesenswert?

Meine Vermutung:

Alle Compiler-Läufe schreiben ihr Ergebnis nach debug/a.out, deshalb 
siehst Du nur das letzte.

von Markus F. (mfro)


Lesenswert?

Stefan schrieb:
> ich probiere gerade Linux aus

dann solltest Du als eines der ersten Dinge lernen, daß das (Windows), 
was Du bislang als "den Standard" betrachtet hast, nicht wirklich "der 
Standard" ist.

Zumindest, was die Zeilenendendarstellung angeht.

von Markus F. (mfro)


Lesenswert?

Georg B. schrieb:
> Meine Vermutung:

falsch geraten. Was macht der Switch "-c"?

von Stefan (Gast)


Lesenswert?

@Slippin Jimmy
Hat leider nicht geholfen. Mit der Zeile #!/bin/sh gibt er eine Fehler 
raus No such file or directory

@pegel
danke! gibt es zu dem Makefile Erstellung eine Anleitung und wie man 
diesen aufruft?

Gruß
Stefan

von Stefan (Gast)


Lesenswert?

@Markus F.

-C Tell the preprocessor not to discard comments. Used with the ‘-E’ 
option

von pegel (Gast)


Lesenswert?

Stefan schrieb:
> gibt es zu dem Makefile Erstellung eine Anleitung und wie man
> diesen aufruft?

Aufgerufen wird einfach mit: make

Die Erstellung geht von ganz einfach bis sehr ausführlich.

Wenn du keine make Erfahrung hast ist vielleicht ein einfaches Beispiel 
hilfreich:

https://github.com/vdudouyt/sdcc-examples-stm8

von pegel (Gast)


Angehängte Dateien:

Lesenswert?

Habe das Beispiel gerade ausprobiert.
Ist noch ein Fehler drin, und 'make clean' räumt auch nicht sauber auf.

Im Anhang meine Variante vom Makefile.

Starten mit: make
Säubern mit: make clean

von Stefan (Gast)


Lesenswert?

danke hat mit dem Makefile gut funktioniert

von Eric B. (beric)


Lesenswert?

Stefan schrieb:
> @Markus F.
>
> -C Tell the preprocessor not to discard comments. Used with the ‘-E’
> option

-c != -C

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.