2016-05-28 3 views
3

Ich versuche, eine CGO-Bibliothek unter Windows zu verwenden, nämlich github.com/mattn/go-sqlite3Compile CGO lib auf Cygwin64: "ld: nicht finden können -lmingw32"

Ich benutze Cygwin64 und mit allen "Entwicklung" Pakete installiert, so gcc verfügbar.

Aber laufen go get github.com/mattn/go-sqlite3 Ergebnisse in:

/usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingwex 
/usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingw32 

Wenn ich für "mingwex" und "mingw32" in den Cygwin-Installer zu suchen, erhalte ich keine Ergebnisse. Suche ich nach den falschen Namen oder sind sie nicht auf 64-Bit-Systemen verfügbar?

Oder gibt es eine bessere Möglichkeit, die Bibliothek unter Windows zu verwenden?


Beachten Sie, dass die Readme besagt, dass

Wenn Sie jedoch installieren Go-sqlite3 mit gehen github.com/mattn/go-sqlite3 installieren, müssen Sie nicht gcc benötigen zu bauen App mehr

aber ich bekomme die gleiche Fehlermeldung, wenn ich go install verwenden.

$ go version 
go version go1.6.2 windows/amd64 
+0

GCC ist für den Aufbau auf Cygwin für Cygwin. mingw32 dient zum Erstellen von Windows. Vielleicht möchten Sie den Cross-Compiler '/ usr/bin/x86_64-w64-mingw32-gcc.exe' von Cygwin nach Windows benutzen? – matzeri

+0

@matzeri danke für den Vorschlag, aber ich kann nicht herausfinden, wie man sagt, welche 'gcc' binary zu verwenden. Eigentlich wäre es auch für mich in Ordnung, für Cygwin zu bauen, wenn ich es zur Arbeit bringen könnte. Irgendwelche Ideen? –

+0

Ich sehe nicht als Cygwin-Paket gehen, so scheint für Cygwin zu bauen kompliziert. Schauen Sie, ob die CC oder GCC Variable wirksam ist – matzeri

Antwort

2

Was schließlich für mich gearbeitet (anstelle von Cygwin) ist TDM MinGW-w64 von http://tdm-gcc.tdragon.net/download und den Pfad, so dass gcc von C:\TDM-GCC-64\bin verwendet zum Download ist.

0

Ich habe das gleiche Problem als auch gefunden. Es scheint mir, dass Cygwin nicht vollständig kompatibel mit CGO ist. Stattdessen habe ich https://mingw-w64.org verwendet.

Von der CGO Dokumentation https://github.com/golang/go/wiki/cgo:

Um CGO unter Windows zu verwenden, werden Sie auch brauchen, um zuerst einen gcc-Compiler zu installieren (zum Beispiel mingw-w64) und haben gcc.exe (etc .) in Ihrer PATH-Umgebungsvariablen vor dem Kompilieren mit cgo wird funktionieren.

1

Sie können auch das Paket mingw64-i686-gcc-core von Cygwin installieren.

Die Binärdatei wird /usr/bin/i686-w64-mingw32-gcc.exe sein, also müssen Sie sie wahrscheinlich als /usr/bin/gcc.exe kopieren.

Verwandte Themen