Forum: PC-Programmierung Cross Compiler unter Windows erstellen


von Peter (Gast)


Lesenswert?

Hi,

ich möchte gern einen Cross-Compiler auf meinem Win7 Rechner erstellen. 
Das Zielsystem stellt einen MIPS Prozessor dar.

Bis jetzt hab ich mir auf der Seite von cygwin alle notwendigen Sachen 
dafür heruntergeladen in der setup.exe und hab diese auch gleich alles 
installieren lassen.

- binutils
- gcc-core
- gcc-g++
- make
- bash
- gdb

Anschließend hab ich den Ordner C:\cygwin und C:\cygwin\bin in der 
Pfadvariable hinterlegt.

Jetzt müsste ich ja eigentlich die binutils konfigurieren; aber wie geht 
das unter Windows?

Unter Linux hab ich folgendes dafür eingegeben:
1
./configure --target="mipsisa32-elf" --prefix=/gnumips --enable-interwork --enable-multilib --enable-target-optspace --with-float=soft --disable-werror

Ich hab zwar eine configure.exe im Bin-Verzeichnis von cygwin aber eine 
binutils.exe kann ich nicht ausfindig machen. Weiß jmd wo die Angabe des 
Targets hineingeschrieben werden muss bzw. wie ich die Binutils richtig 
konfigurieren kann?


Gruß
Peter

von Rolf M. (rmagnus)


Lesenswert?

Peter schrieb:
> Unter Linux hab ich folgendes dafür eingegeben:

Und unter Windows in der cygwin-Shell funktioniert das nicht?

Peter schrieb:
> Ich hab zwar eine configure.exe im Bin-Verzeichnis von cygwin aber eine
> binutils.exe kann ich nicht ausfindig machen.

Warum sollte es eine Datei mit diesem Namen denn geben?

von Peter (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Und unter Windows in der cygwin-Shell funktioniert das nicht?

Bis jetzt nicht. Ich hab als Installationsverzeichnis C:\cygwin 
angegeben und als Downloadverzeichnis D:\downloads\cygwin.

Im Downloadverzeichnis hab ich zwar ein ZIP "Binutils-2.22.51...exe" 
aber darin befindet sich keine configure.exe.

Die einzige configure.exe Datei befindet sich im 
Installationsverzeichnis cygwin\bin.

Wenn ich in diesem Verzeichnis die Bash.exe aufrufe und anschließend 
folgendes eingebe:
1
 configure.exe --target="mipsisa-elf"
dann wird folgendes ausgegeben:
1
Preparing build tree...
2
Unknown option --target=mipsisa-elf
3
Unable to detect the platform from enviroment. Use -platform commman 
4
lineargument or set the QMAKESPEC enviroment variable and run configure 
5
again...

Was genau bezeichnest du als "cygwin-shell"?

von Peter (Gast)


Lesenswert?

oder verwechsel ich da jetzt grad irgendwas? Als IDE möchte ich gern 
Eclipse verwenden. Müssen hier dann unter Compiler GCC die beiden 
Optionen target und prefix angegeben werden?

von Rolf M. (rmagnus)


Lesenswert?

Peter schrieb:
> aber darin befindet sich keine configure.exe.

Ich meinte ja auch das configure-Skript, das du unter Linux auch benutzt 
und nicht irgendein exe-File.

Peter schrieb:
> Was genau bezeichnest du als "cygwin-shell"?

Die Bash, die sich öffnet, wenn du auf das cygwin-Icon klickst.

von Peter (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Ich meinte ja auch das configure-Skript, das du unter Linux auch benutzt
> und nicht irgendein exe-File.

unter linux führe ich ja folgende Befehle aus:
1
cd /usr/src/binutils-2.22.51-2
2
../binutils-2.22.51-2/configure --target=mipsisa32-elf --usw....

Dieses configure-script hab ich nicht selbst geschrieben, sondern dass 
ist bereits beim Linux-Download dabei gewesen. Beim Windowsdownload 
fehlt dieses anscheinend.
D.h. ich muss unter Windows ein eigenes configure.script schreiben?

von W7 (Gast)


Lesenswert?

Peter (Gast) schrieb:

> ..
> Unable to detect the platform from enviroment. Use -platform commman
> lineargument or set the QMAKESPEC enviroment variable and run configure
> ..

"QMAKESPEC" ist doch eigentlich qt Zeugs (Umgebungsvariable von qmake 
aus der Qt library) ..

http://asoneofus.narod.ru/qt/qmake-guide.html

Microsoft Windows:

        set QMAKESPEC=c:\qt\mkspecs\win32-msvc
        set PATH=%PATH%;c:\qmake\bin

von Rolf M. (rmagnus)


Lesenswert?

Peter schrieb:
> unter linux führe ich ja folgende Befehle aus:
> cd /usr/src/binutils-2.22.51-2
> ../binutils-2.22.51-2/configure --target=mipsisa32-elf --usw....
>
> Dieses configure-script hab ich nicht selbst geschrieben, sondern dass
> ist bereits beim Linux-Download dabei gewesen. Beim Windowsdownload fehlt
> dieses anscheinend.

Was meinst du hier mit "Windowsdownload"? Du brauchst natrürlich die 
Sourcen der binutils, wie unter Linux auch. Und im Source-Verzeichnis 
der binutils ist dann das configure-Skript drin.

> D.h. ich muss unter Windows ein eigenes configure.script schreiben?

Nein.

von mips (Gast)


Lesenswert?

hier ist der Bau der Toolchain step by step beschrieben.
Funktioniert auch unter cygwin.

http://retrobsd.org/wiki/doku.php/doc/toolchain-mips

gruss joerg

von Peter (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Was meinst du hier mit "Windowsdownload"?

Ich hab mir bis jetzt unter http://www.cygwin.com/ die setup.exe gezogen 
und anschließend die relevanten Tools über dieses setup-Programm 
heruntergeladen und sofort installieren lassen - u.a. die Binutils.

Wenn ich euch jetzt richtig verstehe, muss ich zwar cygwin installieren; 
aber anschließend die Linux-Tools (wie Binutils) zur Konfiguration eines 
Cross Compilers extra herunterladen und gezielt installieren.

Welche Komponenten müssen denn unter cygwin bereits installiert werden?

Gruß
Peter

von Rolf M. (rmagnus)


Lesenswert?

Peter schrieb:
> Wenn ich euch jetzt richtig verstehe, muss ich zwar cygwin installieren;
> aber anschließend die Linux-Tools (wie Binutils) zur Konfiguration eines
> Cross Compilers extra herunterladen und gezielt installieren.

Richtig.

Peter schrieb:
> Welche Komponenten müssen denn unter cygwin bereits installiert werden?

Mindestens mal gcc und make. Vermutlich noch ein paar andere. Aber wenn 
du configure ausführst und noch was fehlt, dann sagt es dir das schon. 
Dazu (unter anderem) ist es ja da.
Am besten folgst du der Anleitung hinter dem Link, den "mips" gepostet 
hat.

von Robert L. (lrlr)


Lesenswert?

(etwas OT)

wäre es nicht wesentlich einfacher eine VMWare/VirtualBox mit linux zu 
betreiben..

anstelle von cygwin

wenn es eh schon nicht "nativ windows" sein muss..

von Peter (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Mindestens mal gcc und make.
1
../binutils-2.23/configure --target=mipsisa32-elf --prefix=/cygdrive/c/gcc/mipsisa-elf/ --enable-interwork --enable-multilib --with-float=soft --with-gnu-as --with-gnu-ld
1
checking build system type... i686-pc-cygwin
2
checking host system type... i686-pc-cygwin
3
checking target system type... mipsisa32-unknown-elf
4
checking for a BSD-compatible install... /usr/bin/install -c
5
checking whether ln works... yes
6
checking whether ln -s works... yes
7
checking for a sed that does not truncate output... /usr/bin/sed
8
checking for gawk... gawk
9
checking to see if cat works as expected... yes
10
checking for gcc... gcc
11
checking for C compiler default output file name... a.exe
12
checking whether the C compiler works... yes
13
checking whether we are cross compiling... no
14
checking for suffix of executables... .exe
15
checking for suffix of object files... o
16
checking whether we are using the GNU C compiler... yes
17
checking whether gcc accepts -g... yes
18
checking for gcc option to accept ISO C89... none needed
19
checking for g++... g++
20
checking whether we are using the GNU C++ compiler... yes
21
checking whether g++ accepts -g... yes
22
checking for gnatbind... no
23
checking for gnatmake...

Bei gnatmake bleibt er momentan stehen. Wird dieses gnat-Package 
wirklich benötigt?
[/code]

von Rolf M. (rmagnus)


Lesenswert?

Peter schrieb:
> Bei gnatmake bleibt er momentan stehen. Wird dieses gnat-Package
> wirklich benötigt?

Was heißt das genau? Bleibt er da wirklich stehen und du mußt es killen, 
oder bricht er mit einer Fehlermeldung ab?

von Peter (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Was heißt das genau? Bleibt er da wirklich stehen und du mußt es killen,
> oder bricht er mit einer Fehlermeldung ab?

er bleibt an dieser Stelle stehen und ich muss es killen. Leider 
keinerlei Fehlermeldungen.

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.