ndpi在windows10/11中的编译

ndpi在windows10/11中的编译

----此文将对ndpi的github官网中的安装描述进行补充
(https://github.com/ntop/nDPI/blob/dev/README.md)

ndpi官网对于项目如何编译的提示:
ndpi官网对于项目如何编译的提示
据我的理解,上文提供的命令只能在linux中进行使用,并且生成的二进制文件也只能在linux中使用。但是由于项目需要,我想得到一份可以在windows中使用的.exe可执行文件(便于python代码调用)。

当然,官方也想到了这一点,所以提供了多种环境的编译提示:
在这里插入图片描述
针对windows环境共有三种方式(我用的是win11,win10应该也是没问题的),这里我成功使用的是第一种,第二种本质上与第一种没有区别,并且第一种的MSYS2需要选择基于Mingw-w64的终端版本,想深入了解的自行百度MSYS2,我也只用了一次,不展开说明。第三种不会,可能需要下载Visual Studio,可能有点麻烦。。。
使用MSYS2的编译步骤如下:
1、安装MSYS2,教程很多,安装方式也很简单,版本也不影响安装的感觉,略。
2、安装后来到软件安装的文件夹
在这里插入图片描述
可以看到有许多不一样的exe,选择mingw64.exe以管理员方式打开即可。不要选错,否则在生成exe的最后一步,可能会报一个关于binutils这个包的错误,也可能是我当时没有以管理员方式打开。*
(为什么选择这个版本我猜测是因为上文官网的第二种方法是直接使用Mingw-w64,想了解为什么的可以百度一下,大概能懂。)
3.输入官网教程中紧跟msys2-c的那句命令:pacman --noconfirm -S --needed --overwrite ‘*’ git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool make mingw-w64-x86_64-json-c mingw-w64-x86_64-crt-git mingw-w64-x86_64-pcre mingw-w64-x86_64-libpcap。这句话是安编译所需包的命令,具体的可以搜msys2的教程。安装完后还需要再安装c语言的编译器,输入命令:pacman -S base-devel gcc vim cmake,具体教程参考这个链接:https://blog.csdn.net/weixin_43189735/article/details/104217527,不安装的话后面编译会报没有gcc的错误。
4.在msys2的终端中cd到ndpi的解压文件夹:cd …(你的路径)/nDPI-dev,然后依次执行./autogen.sh和make即可在nDPI-dev/example文件夹中找到exe文件,剩下的参考官网教程使用即可。

/-----------------------------------------------------------------------------------------------------------------------------------/
分享一点我在寻找编译方法时的心路历程:
最开始我想在windows中像Linux 一样类似的使用nDPI,但是没仔细研究官网的教程,直接百度了一下如何在windows中编译ndpi,还是有教程的:https://blog.csdn.net/cjx1005/article/details/78322670和https://www.coder.work/article/6287089。

两篇教程内容基本一致,都是下载cygwin,然后再安装libpcap,再执行./configure和make。但是如果你用win10的环境安装,会发现一直报错:Missing libpcap(-dev) library 。

教程的作者会说是winpcap没有安装好,但是你不管怎么安装都会报这个错(winpcap在win10的时候就不支持windows了,好像换到另一个软件上了),csdn的一条评论说必须要安装的是32位的cygwin,但是我只能安装64的cygwin,32位的安装时会弹出报错。所以一直无法通过./configure的编译,也无法make。

没有办法,只能再看官网的教程,一看发现要用Msys2或者mingw64,好家伙,百度一下才发现,上面的cygwin其实就是mingw64和msys2的前身,这就说的通了。其实不是教程有问题,只是当时大家都是32位的系统,所以cygwin可以正常运行编译。

于是,有了cygwin的经验,我再用msys2的时候也能大概知道怎么用了。但是中间报了那个binutils的错,还是困扰了我一会儿,不过最后是换了终端+管理员启动解决了。

总之,还是因为没一开始就按照官方的教程编译导致的问题,教程应该是一直在更新的,所以会比百度到的结果更适合一些。以下是windows终端运行ndpi的结果展示:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值