2012-05-08 5 views
12

MinGW-w64 ist mit Cygwin mindestens seit December 2010 verfügbar. Allerdings habe ich Schwierigkeiten damit, fast alles zu kompilieren. Ich habe symbolische Links gesetzt mit alternativesWie verwende ich MinGW-w64 mit Cygwin?

p=x86_64-w64-mingw32 
alternatives \ 
    --install /usr/bin/gcc.exe gcc /usr/bin/$p-gcc.exe 0 \ 
    --slave /usr/bin/ar.exe ar /usr/bin/$p-ar.exe 

Zum Beispiel, wenn ich versuche, wget

./configure --without-ssl 
make 

Fehler (edited der Kürze halber) zu kompilieren

connect.o:connect.c:(.text+0x3f): undefined reference to `__imp_htons' 
connect.o:connect.c:(.text+0xbe7): undefined reference to `__imp_ntohs' 
connect.o:connect.c:(.text+0xd96): undefined reference to `run_with_timeout' 

Wenn ich

  • MinGW Shell mit MinGW gcc
  • Cygwin Shell mit Cygwin gcc (gcc4-core)

Dann wird Wget kompilieren.

Basierend off ak2 Antwort scheint diese

./configure --host=x86_64-w64-mingw32 --disable-ipv6 --without-ssl 
make 

Antwort

19

ak2 ist teilweise falsch wie angegeben here. Die richtige Option ist --host=x86_64-w64-mingw32, wie Sie herausgefunden haben. --target wird verwendet, um selbst einen Cross-Compiler zu erstellen. Die Optionen sind:

  • --build: Was Sie bauen auf
  • --host: Was Sie bauen für
  • --target: Wenn das, was Sie bauen ist ein Cross-Compiler, was das Cross-Compiler bauen zum.
6

Cygwin der MinGW-w64 Compiler zu arbeiten, ist ein Cross-Compiler, weil es auf Cygwin gehostet aber Targeting MinGW-w64. Sie müssen nur configure davon erzählen die --target Option, etwa so:

--target=x86_64-w64-mingw32 

Auf diese Weise make sein wird, die entsprechenden Tools aufruf. Sie müssen außerdem MinGW-w64-Versionen von Bibliotheken installieren oder erstellen, von denen das Paket abhängt, das Sie erstellen möchten.

Biegen Sie die Alternativen in die /usr/bin Punkt an der MinGW-W64 ist keine gute Idee, weil Sie so MinGW-Tools mit Cygwin-Header und Bibliotheken verwenden, die zu Fehlern wie die führt Du hast das oben zitiert.

+0

Ich habe das Paket 'mingw64-x86_64-gcc-g ++' in Cygwin installiert. '' G ++ 'zeigt jedoch kein' g ++ '. Wo ist der installierte 'mingw64' Compiler? Zu diesem 'mingw64-x86_64-gcc-g ++' was soll ich in './configure --target = ???' setzen – Admia