Maison >développement back-end >Golang >Comment compiler avec succès gopacket sur Windows 64 bits : une solution étape par étape

Comment compiler avec succès gopacket sur Windows 64 bits : une solution étape par étape

DDD
DDDoriginal
2024-10-30 22:26:30709parcourir

How to Successfully Compile gopacket on Windows 64-bit: A Step-by-Step Solution

Compilation de gopacket sur Windows 64 bits : un guide complet

Problème :

Impossible de compiler gopacket sur Windows 10 en mode 64 bits (GOARCH=amd64), malgré une compilation réussie en mode 32 bits (GOARCH=386). L'erreur rencontrée est :

c:/WpdPack/Lib/x64/wpcap.lib: error adding symbols: File in wrong format
collect2.exe: error ld returned 1 exit status

Solution :

Pour réussir à compiler gopacket sur Windows 64 bits, les étapes suivantes sont essentielles :

  1. Installez les composants requis :

    • Installez go_amd64 et ajoutez-le à votre PATH.
    • Installez TDM GCC x64 et ajoutez ses binaires à votre PATH.
    • Ajoutez TDM-GCCx86_64-w64-mingw32bin à votre PATH.
    • Installez Winpcap.
  2. Générez la statique manquante Bibliothèques :

    • Téléchargez le pack des développeurs Winpcap et extrayez-le dans C:.
    • Copiez wpcap.dll et packet.dll de c:windowssystem32 dans un dossier temporaire.
    • Générez des fichiers .def en exécutant gendef wpcap.dll et gendef packet.dll.
    • Créez des bibliothèques statiques libwpcap.a et libpacket.a à l'aide des commandes dlltool :

      • 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
    • Copiez les deux fichiers .a générés dans c :WpdPackLibx64.
  3. Compilation :

    • Une fois ces préparations terminées, gopacket devrait maintenant compiler sans erreurs.

Remarques supplémentaires :

  • La solution fournie nécessite l'installation de TDM GCC x64, qui fournit les outils nécessaires à la compilation 64 bits. sous Windows.
  • La copie de wpcap.dll et packet.dll dans un dossier temporaire est essentielle car des privilèges d'administrateur peuvent être requis pour exécuter gendef sur eux dans leurs emplacements système.
  • Assurez-vous que tous les chemins sont correctement défini et que les variables nécessaires (par exemple, GOARCH) sont correctement spécifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn