Wie kann ich ein Go-Paket mit MinGW installieren, das von libiconv abhängig ist?

8

Ich versuche gerade, ein Go-Projekt einzurichten, und wenn ich bedenke, dass ich Windows benutze, während die anderen beiden Entwickler auf einem Mac arbeiten, habe ich Probleme mit der Installation einiger Pakete.

Nachdem ich versucht habe, die Pakete mit cmd zu installieren, konnte ich nur 2 von 4 installieren. Die anderen beiden benötigten gcc.

Deshalb habe ich MinGW installiert. Ich konnte auf diese Weise ein drittes Paket installieren, aber jetzt stecke ich auf Ссылка fest.

Es hängt anscheinend von einem anderen zugrunde liegenden Projekt ab, Ссылка . In dem Moment, in dem ich versuche go install id3-go, bleibt mir immer dieser Fehler:

%Vor%

Irgendwie muss ich libiconv mit MinGW verwenden, aber ich habe keine Ahnung, wie man beide Teile verbindet. Ich bin nicht wirklich ein Experte auf diesem Gebiet, also würde jede Hilfe sehr geschätzt werden. Ich habe bereits libiconv für Windows heruntergeladen.

Verwandte Themen für zusätzliche Informationen, die ich im github-Projekt gefunden habe: Ссылка

EDIT: Ich habe bei dem ganzen Problem etwas Fortschritte gemacht. Ich habe jetzt alle Dateien, die ich brauche, aber jetzt bin ich mit dieser Warnung fest:

%Vor%

Ich habe versucht, libiconv2.a aus meiner libiconv-Installation in den mingw32 lib-Ordner einzufügen, aber das ist es, womit ich am Ende komme:

%Vor%

Ich habe keine Ahnung, wie ich von hier aus vorgehen soll.

    
Sossenbinder 14.02.2017, 16:13
quelle

1 Antwort

2

Ich habe das gleiche Problem gefunden, wenn ich go install github.com/google/gopacket möchte, die CGO benötigen. Das liegt daran, dass Ihr libiconv2.a von einem anderen Compiler generiert wird, also inkompatibel mit dem mingw32-Compiler ist, wie die Fehlermeldung sagt. Wir müssen die statische lib mit dem mingw32-Toolset erzeugen:

  1. finde libiconv-2.dll (die dynamische Core-Bibliothek) auf deinem PC
  2. Führen Sie gendef (in C: \ TDM-GCC-64 \ x86_64-w64-mingw32 \ bin in meinem 64-Bit-Windows) für diese Dateien gendef libiconv-2.dll aus. Dadurch wird die Datei libiconv2.def
  3. Dann erzeuge die statische Bibliothek:

    dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libiconv2.a --input-def libiconv2.def

  4. Kopieren Sie libiconv2.a an den richtigen Ort.

jfly 25.02.2017, 15:09
quelle

Tags und Links