Forum: Compiler & IDEs ArmGCC mit Make auf Windows


von J. V. (janvi)


Lesenswert?

habe mir den ArmGCC von Launchpad unter W7 sowie das GNU Make aus bzw. 
mit Cygwin installiert. Unter share gibt es bei den Beispielen ein 
Minimum Projekt, welches ich in ein Verzeichniss abseits von 
/Programme/gcc umkopiert habe um es zu übersetzen. Ein Aufruf von make 
ohne weitere Angaben erzeugt klaglos ein minimum.map und ein 
minimum-CM0.axf über das im mimimum Verzeichnis beigelegte makefile. 
Dieses hat eine clean: section welche aber folgende Fehlermeldung 
erzeugt:

C:\data\gcctest\samples\src\minimum>make clean
rm -f minimum*.axf *.map *.o
make: /bin/sh: Command not found
makefile:12: recipe for target 'clean' failed
make: *** [clean] Error 127

Fehlt da noch eine Shell aus Cygwin oder so was ähnliches ?
Oder passt nur der Suchpfad nicht ?
(make.exe habe ich mir in gcc/bin abgelegt)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

J. V. schrieb:
> Fehlt da noch eine Shell aus Cygwin oder so was ähnliches ?

Das von Dir verwendete make scheint es für nötig zu halten, 
Kommandozeilenaufrufe an /bin/sh zu übergeben. Was hier nicht völlig 
fehl am Platze ist, denn rm versteht ein Windows-System eh' nicht.

Also brauchst Du das Cygwin-*nix-Emulations-Geraffel, oder Du musst Dir 
ein anderes, windows-kompatibleres make besorgen, und das Makefile 
anpassen (d.h. *nix-spezifische Aufrufe durch etwas ersetzen, was 
Windows versteht).

von Bernd K. (prof7bit)


Lesenswert?

J. V. schrieb:
> habe mir den ArmGCC von Launchpad unter W7 sowie das GNU Make aus
> bzw. mit Cygwin installiert. Unter share gibt es bei den Beispielen ein
> Minimum Projekt, welches ich in ein Verzeichniss abseits von
> /Programme/gcc umkopiert habe um es zu übersetzen. Ein Aufruf von make
> ohne weitere Angaben erzeugt klaglos ein minimum.map und ein
> minimum-CM0.axf über das im mimimum Verzeichnis beigelegte makefile.
> Dieses hat eine clean: section welche aber folgende Fehlermeldung
> erzeugt:
> C:\data\gcctest\samples\src\minimum>make clean
> rm -f minimum*.axf *.map *.o
> make: /bin/sh: Command not found
> makefile:12: recipe for target 'clean' failed
> make: *** [clean] Error 127
>
> Fehlt da noch eine Shell aus Cygwin oder so was ähnliches ?
> Oder passt nur der Suchpfad nicht ? (make.exe habe ich mir in gcc/bin
> abgelegt)

Rufe es aus einer cygwin Konsole auf.

Es gibt keinen Grund irgendwelche exe woanders hin zu verschieben also 
mach das wieder rückgängig. Der gcc sollte sowieso im PATH stehen 
(Häkchen bei  der Installation setzen) und das cygwin bin Verzeichnis 
ist im PATH wenn Du in einer cygwin Konsole arbeitest.  Wenn du es aus 
der IDE aufrufen willst dann füge cygwin dort zum path hinzu (nicht 
global, nur in den IDE Einstellungen). Dann klappt das auch alles.

von j.v. (Gast)


Lesenswert?

von der cygwin Console aus geht es tatsächlich klaglos und wenn man sich
mal an den Zugriff über cygdrive/c/... gewöhnt hat

jv@OSIRIS /cygdrive/c/data/gcctest/samples/src/minimum
$ ls
makefile  makefile.bak  makefile.txt  minimum.c  minimum.map 
minimum-CM3.axf

jv@OSIRIS /cygdrive/c/data/gcctest/samples/src/minimum
$ make clean
rm -f minimum*.axf *.map *.o

jv@OSIRIS /cygdrive/c/data/gcctest/samples/src/minimum
$ ls
makefile  makefile.bak  makefile.txt  minimum.c

Habe aber auch versucht das rm durch del zu ersetzen, weshalb aber noch 
immer /bin/sh/ gesucht wird. GnuMake scheint man nicht so einfach 
beibringen zu können eine Win7 shell aufzurufen

von Bernd K. (prof7bit)


Lesenswert?

j.v. schrieb:
> GnuMake scheint man nicht so einfach beibringen zu können eine Win7
> shell aufzurufen

Das ist auch nicht unbedingt erstrebenswert. Da gibt's dann auch subtile 
Unterschiede und manchmal Probleme was parallele Abarbeitung angeht und 
ganz generell auf Dauer nur graue Haare.

Ich lege alle  meine Makefiles jetzt grundsätzlich so aus dass sie eine 
sh Shell und die GNU Tools benutzen, die bekomme ich frei Haus und ohne 
Verrenkungen von cygwin geliefert, das einzige was ich dann beachten 
muss ist vor Gebrauch den Pfad zu cygwin zu setzen oder sie nur aus der 
cygwin Konsole auzurufen.

Das ist weniger umständlich als es sich anhört: In der IDE zum Beispiel 
kann man die Umgebungsvariablen konfigurueren für den Aufruf externer 
Tools und wenn ichs aus einer batch heraus aufrufe ist es auch nur eine 
einzige zusätzliche Zeile.

Noch ein tip: Google mal nach dem Tool "chere". Das richtet einen 
Kontextmenü-Eintrag ein mit dem man im Explorer in irgendeinem Ordner 
per simplen Mausklick ruckzuck schnell eine cygwin Konsole öffnen kann. 
Sehr bequem und vorteilhaft!

von Markus C. (ljmarkus)


Lesenswert?

Cygwin.reg einmal ausführen....
1
Windows Registry Editor Version 5.00
2
; Open cygwin to folder
3
; http://tomkay.me - Tom Kay
4
5
[HKEY_CLASSES_ROOT\Directory\shell\open_cygwin]
6
@="Open Cygwin Here"
7
8
[HKEY_CLASSES_ROOT\Directory\shell\open_cygwin\command]
9
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"$*\"`\"; exec bash' bash \"%V\""
10
11
[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin]
12
@="Open Cygwin Here"
13
14
[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin\command]
15
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"$*\"`\"; exec bash' bash \"%V\""
16
17
[HKEY_CLASSES_ROOT\Drive\shell\open_cygwin]
18
@="Open Cygwin Here"
19
20
[HKEY_CLASSES_ROOT\Drive\shell\open_cygwin\command]
21
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"$*\"`\"; exec bash' bash \"%V\""

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.