`
aswang
  • 浏览: 848202 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在android平台上编译libpcap-0.9.8 和 jnetpcap-1.3.0-1

 
阅读更多

昨天尝试编译libpcap0.9.8和jnetpcap1.2成功了,今天想着能不能编译libpcap0.9.8和jnetpcap-1.3.0-1。

因为jnetpcap-1.3.0-1也支持libpcap的0.9.8版本。

 

libpcap0.9.8的源码下载参见前一篇文章:

http://aswang.iteye.com/blog/1036305

 

jnetpcap-1.3.0-1的下载地址:

http://jnetpcap.com/download

 

源码下载完毕之后,还是新建一个目录,把libpcap0.9.8 和jnetpcap-1.3.0-1的c源码放在一起,然后在该目录中新建Android.mk文件,内容如下:(当然javah命令还是需要执行,以便生成对应的头文件)

 

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

 

LOCAL_SRC_FILES:=\

bpf_dump.c\

bpf/net/bpf_filter.c\

bpf_image.c\

etherent.c\

fad-gifc.c\

gencode.c\

grammar.c\

inet.c\

nametoaddr.c\

optimize.c\

pcap.c\

pcap-linux.c\

savefile.c\

scanner.c\

version.c

 

LOCAL_CFLAGS:=-O2 -g

LOCAL_CFLAGS+=-DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -Dlinux -D__GLIBC__ -D_GNU_SOURCE

 

LOCAL_MODULE:= libpcap

include $(BUILD_STATIC_LIBRARY)

 

#LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

 

LOCAL_SRC_FILES:=\

jnetpcap.cpp\

jnetpcap_beta.cpp\

jnetpcap_bpf.cpp\

jnetpcap_dumper.cpp\

jnetpcap_ids.cpp\

jnetpcap_pcap_header.cpp\

jnetpcap_utils.cpp\

nio_jbuffer.cpp\

nio_jmemory.cpp\

nio_jnumber.cpp\

packet_flow.cpp\

packet_jheader.cpp\

packet_jheader_scanner.cpp\

packet_jpacket.cpp\

packet_jscan.cpp\

packet_jsmall_scanner.cpp\

packet_protocol.cpp\

util_checksum.cpp\

util_debug.cpp\

util_in_cksum.cpp\

winpcap_ext.cpp\

winpcap_ids.cpp\

winpcap_send_queue.cpp\

winpcap_stat_ex.cpp

 

LOCAL_MODULE:= libjnetpcap

LOCAL_STATIC_LIBRARIES := libpcap

include $(BUILD_SHARED_LIBRARY)

 

然后进行ndk-build编译,编译报错:

说未定义的引用:crc16_ccitt_seed 等

 

结果找到对应的头文件了:

util_crc16.h 、util_crc32.h

但是没有发现对应的.c文件,于是上网搜索,看看这两个头文件是不是已经在某个库里面实现了,结果没发现有哪个c函数库包含这两个文件,为这个问题纠结了很长时间,最后想是不是下载的包里面没有包含这两个头文件的c源文件,于是想着从svn库里面checkout出来看看,于是到jnetpcap官网上去看文档了,结果还让我找到了svn的地址:

svn co https://jnetpcap.svn.sourceforge.net/svnroot/jnetpcap/jnetpcap/trunk jnetpcap

(网址:http://jnetpcap.com/node/329),索性就把源码全部下载了,结果还真找到了util_crc32.c和util_crc16.c文件。

 

文件找到了,问题怎么解决?直接修改Android.mk文件,在jnetpcap模块的LOCAL_SRC_FILES:=\下面加上这两个c文件:

 

LOCAL_SRC_FILES:=\

util_crc16.c\

util_crc32.c\

jnetpcap.cpp\

......

 

然后,继续编译,成功!

 

虽然成功了,但是后来在android上测试的时候,发现没法使用,因为jnetpcap里面使用了在android里面不支持的java.awt.Image类,虽然找到一些解决办法(例如使用兼容性的java.awt.Image库),但是想想也没必要使用最新版本的,之前的jnetpcap1.2工作的蛮好的,那就继续使用吧。这从编译权当做练习了!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2
1
分享到:
评论
1 楼 gezexu 2011-08-29  
楼主你好,我也成功编译了libpcap0.9.8和jnetpcap1.2,当时当我当我在模拟器中调用的时候总是找不到网卡列表,Pcap.findAllDevs(alldevs, errbuf);执行这个方法,可以成功,但是集合alldevs为空,怀疑是模拟器的原因,后来把程序部署到真机上跑.问题依旧,请问你编译的so能够正确获取网卡列表吗?如果可以的话,麻烦给我发一份(304075296@qq.com),谢谢了,我的qq:304075296加我交流一下

相关推荐

    开发形状模型的框架Matlab代码.rar

    开发形状模型的框架Matlab代码.rar

    高级开发简单游戏制作,期末项目答辩小组作业

    期末项目答辩

    042Interpolation(目标规划、多元分析与插值的相关例子)Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    微信小程序搭建andora-bilerplat-what.zip

    微信小程序搭建andora-bilerplat-what

    SEPSPYR 是一个 MATLAB 工具箱,用于构建和重建可分离的正交可操纵金字塔。.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    PFC单轴压缩声发射模拟演化规律及胶结破坏能监测

    PFC单轴压缩声发射模拟演化规律及胶结破坏能监测

    046SOCPR-and-Linear-Disrflow-based-DNP-main matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    博世汽车电驱仿真模型,同步电机和异步电机模型,相电流完美波形 博世汽车电驱仿真模型,同步电机和异步电机模型,相电流完美波形,自动计算弱磁模型调用各种脚本进行foc控制,正反转切电流无波动,由于模型特殊

    博世汽车电驱仿真模型,同步电机和异步电机模型,相电流完美波形 博世汽车电驱仿真模型,同步电机和异步电机模型,相电流完美波形,自动计算弱磁模型调用各种脚本进行foc控制,正反转切电流无波动,由于模型特殊性购入不 不,谢谢(运行前要加载tc_ipmsm_config.m)

    Spring Cloud版本的分布式电子商务项目,致力于打造顶级多模块、高可用、高可扩展的电子商务项目_环云商城.zip

    Spring Cloud版本的分布式电子商务项目,致力于打造顶级多模块、高可用、高可扩展的电子商务项目_环云商城

    高维数据分析作业:图理论与矩阵范数应用(网络分析与社区检测)

    内容概要:本文档主要聚焦于2024年秋季学期高维数据分析课程的第六次作业,涉及多个关于复杂网络分析的重要概念和技术。具体涵盖:基于图论的基本证明如节点度与共同邻居的数学表达形式;对网络社区结构进行划分,并通过模态性公式评价这种划分的效果;针对实际社交网络数据集利用随机块模型和社会经济回报模型(SCORE)来进行高效的社区识别任务;以及深入探讨了矩阵的核范数及其与谱范数间的关系,强调了它们在解决现实生活中大型稀疏矩阵问题方面的重要性。 适合人群:面向正在学习数据挖掘、机器学习等相关专业的大三及以上的学生,特别是有兴趣深入了解图论及其在网络科学中具体应用的研究人员。 使用场景及目标:该文档用于帮助学生更好地掌握高维数据分析技巧,在实际项目实践中提高解决问题的能力。通过本练习可以加深对于社交网络构建、模块化计算方法的认识,同时也能加强对线性代数里关键概念的理解。这对于准备从事数据分析相关工作或进一步深造的同学非常有益。 其他说明:这份PDF材料包含了大量详细的数学推导步骤,以及具体的评分标准和作业完成时间限制(截止日期:12月29日星期日晚上十点)。为了更好地完成这门课的任务,建议配合教科书和其他参考资料一起使用,鼓励学生积极思考每个问题背后的原理。

    springboot117基于SpringBoot的企业资产管理系统.zip

    springboot117基于SpringBoot的企业资产管理系统,含有完整的源码和报告文档

    纸张复制品_有机-v2.add.zip

    纸张复制品_有机-v2.add

    【Unity天气和天空系统插件】Enviro 3 - Sky and Weather

    【Unity天气和天空系统插件】Enviro 3 - Sky and Weather Enviro 3 - Sky and Weather 是一款专为 Unity 设计的高级天气和天空系统插件,旨在为游戏或应用程序提供动态、逼真的天空和天气效果。通过此插件,开发者可以轻松地创建动态变化的天空、天气和环境条件,包括阳光、云层、风暴、雨雪等效果,极大地提升游戏或虚拟环境的沉浸感和视觉表现力。 主要功能: 动态天气系统:Enviro 3 提供了完整的天气模拟系统,支持多种天气类型(如晴天、雨天、雪天、雾霾、雷暴等),并能够根据游戏环境实时变化。天气系统的转换平滑自然,可自定义天气变化的周期和频率。 实时天空系统:插件使用先进的天空渲染技术,提供了实时的昼夜循环、动态的光照变化,以及真实的星空和太阳/月亮运动效果。支持在不同的地理位置和时间变化下模拟真实的天空。 物理光照与气候效果:Enviro 3 支持物理光照模型,能够根据天气、云层、光线强度等因素,自动调整环境光照的强度、颜色和阴影效果,提升环境的真实性。 云层和雾霾模拟:插件提供了可调的云层和雾霾效果,包括低层雾霾、高空云层、雨

    springboot146基于Spring Boot的可盈保险合同管理系统的设计与实现.zip

    springboot146基于Spring Boot的可盈保险合同管理系统的设计与实现,含有完整的源码和报告文档

    到2023!地级市绿色专利获取申请数量 1990-2023 免费分享!

    ①数据来源:自己从cnrds数据库下载的原始数据,未做任何处理 ②数据年份:不同表格不一致,很多表格比如上市公司绿色专利申请与获得都是从1991年开始的,目前除了引用里的被引用信息更新到23年11月底,其余均更新到23年底 ③数据内容:两个表格 数据清单: 各省市绿色专利申请与获得(内部是地级市) 各省市绿色专利申请情况 各省市绿色专利获得情况

    基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)

    基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目),个人大三期末大作业项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星项目源码(高分项目)基于matlab实现轨道六根数画出卫星的飞行轨迹来自低轨卫星

    脑启发决策脉冲神经网络及其应用于无人机自主任务

    内容概要:本文介绍了一种模拟人脑决策机制的脑启发型决策脉冲神经网络(BDM-SNN)模型,该模型融合了多巴胺调节与突触时程依赖的可塑性(STDP),用于加速智能体的学习与决策过程。文中描述了模型构建的具体方法、实验平台及应用场景,特别是针对无人驾驶飞行器的任务应用,如穿越窗口和避障等复杂环境任务的表现进行了详细讨论。与传统强化学习和其他生物启发方法相比,新模型不仅实现了更高精度与更快的学习速度,而且能够解释奖励预测误差和时间差分学习的关系。 适用人群:对生物启发型人工神经系统以及神经机器人感兴趣的研究人员和技术人员。 使用场景及目标:用于改进无人驾驶车辆等智能体在实际环境中做出正确行为选择的速度与准确性。特别是在需要高效、快速适应不同环境的任务中展现出了优势。 其他说明:作者团队还探讨了未来可能的方向,比如考虑更多神经递质的作用或者自动状态分类的方法,以进一步优化和发展这一领域内的研究。

    纯JS实现,用于将文本复制到剪贴板,支持IE Chrome、Firefox、Opera、Safari、IOS、Android_xe-chipboard.zip

    纯JS实现,用于将文本复制到剪贴板,支持IE Chrome、Firefox、Opera、Safari、IOS、Android_xe-chipboard

    HTML5实现的微信大转盘抽奖特效源码.zip

    这是一款基于jQuery+HTML5实现的微信大转盘抽奖效果源码,是一款可配置奖品抽奖的jQuery大转盘抽奖代码,可实现点击按钮转轮旋转实现抽奖功能,效果逼真自然,是一款非常优秀的特效源码

    腾讯云AI代码助手编程挑战赛-图片转换工具示例视频

    腾讯云AI代码助手编程挑战赛-图片转换工具示例视频

Global site tag (gtag.js) - Google Analytics