ホームページ >バックエンド開発 >Golang >Windows 64 ビットで gopacket を正常にコンパイルする方法: 段階的な解決策

Windows 64 ビットで gopacket を正常にコンパイルする方法: 段階的な解決策

DDD
DDDオリジナル
2024-10-30 22:26:30711ブラウズ

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

Windows 64 ビットで gopacket をコンパイルする: 総合ガイド

問題:

Windows 10 で gopacket をコンパイルできない32 ビット モード (GOARCH=386) ではコンパイルが成功したにもかかわらず、64 ビット モード (GOARCH=amd64) では問題が発生します。発生したエラーは次のとおりです:

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

解決策:

Windows 64 ビットで gopacket を正常にコンパイルするには、次の手順が不可欠です:

  1. 必要なコンポーネントをインストールします:

    • go_amd64 をインストールし、PATH に追加します。
    • TDM GCC x64 をインストールし、そのバイナリをPATH.
    • TDM-GCCx86_64-w64-mingw32bin を PATH に追加します。
    • Winpcap をインストールします。
  2. 不足している静的データを生成しますライブラリ:

    • Winpcap Developers' Pack をダウンロードし、C: に抽出します。
    • wpcap.dll と packet.dll を c:windowssystem32 から一時フォルダーにコピーします。
    • gendef wpcap.dll および gendef packet.dll を実行して .def ファイルを生成します。
    • dlltool コマンドを使用して libwpcap.a および libpacket.a 静的ライブラリを作成します。

      • 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
    • 生成された両方の .a ファイルを c にコピーします:WpdPackLibx64.
  3. コンパイル:

    • これらの準備が完了すると、gopacket はエラーなしでコンパイルされるはずです。

追加の注意:

  • 提供されるソリューションには、64 ビット コンパイルに必要なツールを提供する TDM GCC x64 のインストールが必要です。 Windows の場合。
  • システムの場所で gendef を実行するには管理者権限が必要な場合があるため、wpcap.dll と packet.dll を一時フォルダーにコピーすることが不可欠です。
  • すべてのパスが次のとおりであることを確認してください。正しく設定されており、必要な変数 (GOARCH など) が適切に指定されていること。

以上がWindows 64 ビットで gopacket を正常にコンパイルする方法: 段階的な解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。