android - Android NDK : Compiling errors using lib

我正在尝试将Jnetpcap(带有JNI的libpcap的Java包装器)移植到Android。我已经使用此存储库中的源代码设法将libpcap编译为静态库:https://github.com/android/platform_external_libpcap,并获得了libpcap.a

尝试将Jnetpcap编译为共享库(并与libpcap.a链接)时,出现错误,因为某些libpcap的函数“未在此范围内声明”。
这些函数是:pcap_create(),pcap_activate(),pcap_can_set_rfmon(),pcap_set_buffer_size(),pcap_set_promisc(),pcap_set_snaplen()和pcap_set_timeout()。

这些功能存在于libpcap的原始版本(libpcap-dev数据包提供的功能)中,但似乎android的版本没有这些功能。可以为intel x86和x64平台编译Jnetpcap的相同源文件,而不会出现问题。

难道我做错了什么?这些功能真的缺失了吗?

我希望你们中的任何人都知道如何解决此问题。谢谢。

最佳答案

不幸的是,libpcap的0.9.8版似乎不支持这些功能。 > = 1.0.0的版本包含它们。因此,现在您有2种可能性。通过将Android.mk修改为旧版本来编译新版本的libpcap,以稍微包含旧文件。或将jnetpcap降级到支持旧libpcap的版本。如果从2007年开始,请选择Libpcap 0.9.8,因此您也应该从今年左右选择jnetpcap。

关于android - Android NDK : Compiling errors using libpcap for Android - functions “not declared in this scope” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5476839/

相关文章:

android - cygwin中的ndk-build错误

c# - 从C#调用VB.Net函数

iphone - 调试版本工作,发布版本失败-llvm-gcc-4.2失败,退出代码为1

eclipse - 无法在 Eclipse 中导入 Appengine 模块

apache-flex - 将 Flex 从 3.2 升级到 4.5 - 错误和警告

compiler-errors - 用于MPLAB的示例USB项目上的编译错误

cuda - 在 Cuda (nvcc) 中关闭文件指针

c# - VS2010 C#WPF应用程序: New WPF Project Cannot Call

visual-studio-2010 - 为Android编译C++项目时权限被拒绝

gwt - Maven GWT插件 “failed with status 1”错误