2

Windows 7 (64 ビット) で pcap パッケージをインストールできません。誰もそれを行う方法を知っていますか?

「cabal install pcap」を実行した場合のエラー メッセージ:

cabal.exe: 外部ライブラリへの依存関係がありません:

  • 欠落している (または不正な) ヘッダー ファイル: pcap.h
  • C ライブラリがありません: pcap

ここから WinPcap 4.1.2 Developers Pack をダウンロードしました: http://www.winpcap.org/devel.htm

MinGW/MSYS を最初からインストールしました。両方を試しました: GHC 7-6.2 (ghc-7.6.2-x86_64-unknown-mingw32.tar.bz2) を事前にパッケージ化し、MinGW/MSYS で自分でコンパイルしました。

複数の問題があるようです:

  1. pcap.h へのインクルード パス (--extra-include-dirs) を指定すると、「cabal configure」を正常に実行できますが、「netinet/in.h」が見つからないため「cabal build」で失敗します。

  2. MSYS "mingw-get install msys-core-dev" で実行して netinet/in.h をインストールすると、既に定義されているさまざまな種類のメッセージが大量に表示されます。

  3. WinPCap Developers Pack には libpcap.a がありません (libwpcap.a があります)。また、64ビット版はないようです。自分でコンパイルする必要がありますか?

このような状況が Windows での cabal パッケージで通常どのように処理されるかを誰かが提案していただければ幸いです。

4

2 に答える 2

2

WinPCap Developers Pack には libpcap.a がありません (libwpcap.a があります)。

正しい。良くも悪くも、ライブラリは UN*X では "libpcap" と呼ばれるため、 flag とリンクされていますが-lpcap、Windows では "WinPcap" と呼ばれ、.aファイルは "libwpcap.a" と呼ばれます。 UN*X スタイルのツールを使用するアプリケーションの場合、フラグ でリンクされ-lwpcapます。

したがって、Windows で UN*X スタイルのファイルを使用している場合でも、UN*X で行う pcap ベースのプログラムをリンクするために同じフラグを使用することはありません。

そして、もちろん、64 ビット バージョンを自分でコンパイルする必要があります。Microsoftビルドツールで使用する64ビットバージョンのファイルを提供していますが、UN * Xのようなツールで使用.libする64ビットバージョンのファイルを提供していないようです..a

于 2013-03-27T18:47:33.377 に答える
0

netinet/in.h を利用できるようにしてみましたか? 私の記憶では、これは Haskell の同等物を生成するために使用されました。他には何もいらないかもしれません。警告: 私が最後にこのパッケージに取り組んだのは 7 年前です。

于 2013-03-27T13:20:00.217 に答える