繁体   English   中英

如何在 Windows 中编译 nDPI 库附带的 ndpiReader.c?

[英]How can I compile ndpiReader.c that comes with nDPI library in Windows?

我想创建一个带有nDPI libraryndpiReader.c演示程序的 .exe 。 我成功地使用在他们的 github 页面上指定的命令在 Ubuntu 上编译它,如下所示:

./autogen.sh
./configure
make

我试图在 Ubuntu 中使用 GCC 交叉编译它,但我没有成功。 我还尝试使用pcapExample.sln在 Visual Studio 2012 中编译它,但我不断收到如下错误消息:

错误 29 错误 C1083:无法打开包含文件:'ndpi_api.h':没有这样的文件或目录

尽管ndpi_api.h和我收到此错误的所有其他文件都已在项目解决方案资源管理器中列出。 有没有人真的能够从这个ndpiReader.c文件中制作一个 win32 可执行文件? 如果是,请说明步骤、要求或链接。

nDPI库托管在这里: https : //github.com/ntop/nDPI

ndpiReader.c托管在这里: https : //github.com/ntop/nDPI/tree/dev/example

pcapExample.sln托管在这里: https : //github.com/ntop/nDPI/tree/dev/example/Win32

我从你的其他问题中看到你已经尝试用CYGWIN编译它并遇到了一些问题。

这是我刚刚用来编译 nDPI 的分步指南(包括 ndpiReader.exe 示例):

安装 CYGWIN:

  1. 接受默认目录,并选择一个镜像。
  2. Select Packages步骤,展开Devel类别,然后选择以下开发者包进行安装:
    • 自动配置
    • autoconf2.5
    • 汽车制造商
    • automake1.15
    • 二进制实用程序
    • 制作
    • cygwin-devel
    • gcc核心
    • gcc-tools-epoch2-autoconf
    • gcc-tools-epoch2-automake
    • 库工具
    • 制作
    • 包配置
    • w32api-headers
    • w32api-运行时

在 CYGWIN 下安装 libpcap:

  1. 下载并解压Winpcap Developer's pack
  2. 将 libpacket.a 和 libwpcap.a 从 WpdPack\\Lib\\ 复制到 cygwin\\lib\\
  3. 在 cygwin\\lib 中,将 libwpcap.a 复制到 libpcap.a
  4. 在 cygwin\\usr\\include 中,创建一个 pcap 目录
  5. 将所有标题从 WpdPack\\Include 复制到 cygwin\\usr\\include\\pcap

我确定您已经安装了 winpcap 作为您尝试过的所有其他内容的一部分,但请仔细检查必要的(packet.dll 和 wpcap.dll)库是否已经在 cygwin\\c\\WINDOWS\\system32 中。

现在您已拥有在 Windows 上编译 nDPI 所需的所有工具和库!

建立 nDPI

  1. 在干净的目录中再次下载并解压 nDPI,这样您就不会被之前尝试构建的任何问题所困扰。

  2. 打开 CYGWIN 终端,然后 cd 进入 nDPI 目录。

  3. 运行 autogen.sh

     ./autogen.sh

    这应该完成而没有任何错误。

    如果它以“缺少某个软件包:请安装它并重试”而停止,那么您就没有安装构建源代码所需的 CYGWIN 软件包。

    如果它因“缺少 libpcap(-dev) 库”而停止,请仔细检查您之前在 cygwin\\lib 中复制 libpcap.a 所做的步骤。

  4. autogen.sh 应该开始为您运行配置阶段。 (如果没有,或者此阶段的一部分失败,您可以在修复任何问题后重新运行配置。)

     ./configure

    在检查了一些事情之后,configure 将通过创建一个 Makefile 来结束。

  5. 通过运行 make 构建 nDPI 库。

     make

    它将构建库,然后尝试构建示例,但由于找不到pcap.h而失败

  6. cd 进入示例目录,并通过在命令中添加-I/usr/include/pcap手动编译 ndpiReader.c:

     cd example/ gcc -DHAVE_CONFIG_H -I. -I.. -I../src/include -I/usr/include/pcap -g -O2 -c -o ndpiReader.o ndpiReader.c

    我以我的命令为例。 如果您的编译器命令略有不同,只需将 -I/usr/include/pcap 添加到您的 Makefile 调用的内容中。

  7. 离开示例目录,并继续制作。

     cd .. make

    最后一步将 ndpiReader 与 ndpi 库链接,并创建您正在寻找的可执行文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM