windows - cabal 安装 pcap Windows 64 位

标签 windows haskell cabal pcap

我无法在 Windows 7(64 位)下安装 pcap 软件包。有人知道怎么做吗?

如果我运行“cabal install pcap”,会出现错误消息:

cabal.exe:缺少对外部库的依赖:

  • 头文件丢失(或损坏):pcap.h
  • 缺少 C 库:pcap

我从这里下载了 WinPcap 4.1.2 开发者包: 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 配置”,但在使用“netinet/in.h”进行“cabal build”时失败未找到。

  2. 如果我通过在 MSYS“mingw-get install msys-core-dev”下运行来安装 netinet/in.h,那么我会收到大量不同类型的已定义消息。

  3. WinPCap 开发人员包没有 libpcap.a(它有 libwpcap.a)。而且好像没有 64 位版本。我需要自己编译吗?

如果有人能建议 Windows 下的 cabal 软件包通常如何处理这种情况,我将不胜感激。

最佳答案

WinPCap Developers Pack do not have libpcap.a (it has libwpcap.a).

正确。无论好坏,虽然该库在 UN*X 上称为“libpcap”,因此与标志 -lpcap 链接,但在 Windows 上称为“WinPcap”,并且 .a 文件名为“libwpcap.a”,这意味着如果您使用 UN*X 风格的工具构建应用程序,它将与标志 -lwpcap 链接。

所以,不,即使您在 Windows 上使用 UN*X 样式的文件,您也不会使用与在 UN*X 上相同的标志来链接基于 pcap 的程序。

而且,是的,您必须自己编译 64 位版本;虽然他们提供了与 Microsoft 构建工具一起使用的 64 位版本的 .lib 文件,但他们似乎不提供 64 位版本的 .a > 文件以与更多类似 UN*X 的工具一起使用。

关于windows - cabal 安装 pcap Windows 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15648750/

相关文章:

haskell - 柯里化(Currying)带有 n(3 个或更多)参数的函数?

haskell - 使用 `ghc-pkg` 注册多个版本的软件包?

haskell - 如何使用 cabal/stack 添加新的可执行文件?

c# - Microsoft Server 2008 R2 不从任务计划程序写入文本文件

windows - pthreads 和 CreateThread 的死锁

java - 在 Windows 中使用 Java 保护文件

haskell - "<-"do 表示法中的绑定(bind)

windows - 如何在 Windows 中循环处理 FFMpeg?

haskell - 从同一个 `main` 运行两个 warp 服务器是否安全?

haskell - 如何在不编译和链接整个项目的情况下加载 `stack ghci`?