Heim >Backend-Entwicklung >Golang >Wie kompiliere ich Gopacket unter Windows 64-Bit mit dem Fehler „Datei im falschen Format'?

Wie kompiliere ich Gopacket unter Windows 64-Bit mit dem Fehler „Datei im falschen Format'?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 12:51:29613Durchsuche

How to Compile Gopacket on Windows 64-bit with

Gopacket unter Windows 64-Bit kompilieren

Problem:

Beim Versuch, Gopacket zu kompilieren Unter Windows 10 für 64-Bit (GOARCH=amd64) tritt beim Hinzufügen von wpcap-Symbolen zur Binärdatei ein Fehler mit der Meldung „Datei im falschen Format“ auf.

Lösung:

Um gopacket unter Windows 64-Bit erfolgreich zu kompilieren, befolgen Sie diese Schritte:

  1. Installieren Sie Go für 64-Bit (go_amd64).
  2. Installieren Sie TDM GCC x64 und fügen Sie seine Binärdateien zum hinzu PATH-Variable.
  3. Fügen Sie das TDM-GCC x86_64-w64-mingw32bin-Verzeichnis zur PATH-Variablen hinzu.
  4. Installieren Sie Winpcap.
  5. Laden Sie das Winpcap-Entwicklerpaket herunter und extrahieren Sie es nach C :.

Da dem Winpcap-Entwicklerpaket keine statischen Linux-Bibliotheken (libwpcap.a und libpacket.a) fehlen, generieren Sie diese manuell:

  1. Kopieren Sie wpcap.dll und Paket. dll in einen temporären Ordner.
  2. Führen Sie gendef für beide Dateien aus, um .def-Dateien zu generieren.
  3. Generieren Sie die statischen Bibliotheken mit dlltool mit den folgenden Befehlen:
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libwpcap.a --input-def wpcap.def
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libpacket.a --input-def packet.def
  1. Kopieren Sie libwpcap.a und libpacket.a nach C:WpdPackLibx64.

Nach Abschluss dieser Schritte sollte gopacket ohne Fehler unter Windows 64-Bit kompiliert werden.

Das obige ist der detaillierte Inhalt vonWie kompiliere ich Gopacket unter Windows 64-Bit mit dem Fehler „Datei im falschen Format'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn