【问题标题】:Compile libpcap using Android NDK使用 Android NDK 编译 libpcap
【发布时间】:2014-05-03 23:46:02
【问题描述】:

我已经做了很多尝试来为 Android 编译 libpcap,但我没有看到任何值得记录的模式或进展。

我有一个非常简单的嗅探器(在 MIPS linux 中工作正常),它使用 libpcap,所以我想哦,好吧...没什么大不了的...我只会为 Android 编译 libpcap(最后,Android 只是一个 Linux)... 这就是问题开始的地方。我不知道如何使用 ndk-buildAndroid.mk 以及所有这些基础设施来编译 libpcap。

我在一个目录中有 Android NDK。该 NDK 构建了工具链(我在 ~/Documents/Projects/Android_NDK/toolchains/ 下有很多目录),但没有一个工具链有 libpcap 可用。

我尝试了两个不同的 libpcap 版本或... 分支:

Android 版本,我想使用的版本, https://android.googlesource.com/platform/external/libpcap/

和普通的: http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz

我所做的所有尝试都非常不成功。我已经看到了类似的问题Android NDK: Link using a pre-compiled static library,但我仍然遇到各种错误。

我已将这些 pcap 库下载到它们自己的目录中。也许这就是问题所在?我是否需要将 Android libpcap 放在 NDK 根目录中的某个目录中并重新创建工具链?

我在 MacOSX 10.9.2 64 位上使用 NDK-r9。

【问题讨论】:

    标签: android linux compilation android-ndk libpcap


    【解决方案1】:

    终于!!

    在对其中不存在的标头之类的东西感到恼火之后,我找到了this question,它指向一个带有已编译的 libpcap 的 SVN 存储库 (http://sourceforge.net/p/prueba-android/code/HEAD/tree/trunk/jni/)!

    如果其他人想了解有关我的 Android.mk 和目录结构的更多详细信息,请添加评论,我将扩展此答案。

    【讨论】:

    • 那是相当旧的版本,不是吗?
    • 是的...但是如果它编译,它就会发布! :-D
    • 你找到Android.mk和目录结构的样子了吗?
    【解决方案2】:

    请阅读http://blog.umitproject.org/2011/05/libpcap-for-android.html 的精彩文章。有一些说明可以帮助您链接到 libpcap,但最重要的一点是您不能在非 root 的 Android 上使用 libpcap。所以也许这不值得你努力。

    在有根设备上,您可以简单地安装一个免费的嗅探器,例如Shark for Root

    【讨论】:

    • 感谢您的链接。我已经尝试过了 ;-) 我一直收到错误消息:Android_NDKs/external/libpcap/pcap-linux.c:218:30: fatal error: linux/net_tstamp.h: No such file or目录 另外,感谢有关根设备的提示。实际上,我忘了在问题中说明这一点。我确实有一个安装了 su 并授予我的应用 root 访问权限 :-)
    【解决方案3】:

    如果其他人在使用 NDK 为 Android 编译 libpcap 时遇到问题,这里有 1.5.2 版,其中包含一个内置的 Android.mk 文件:https://android.googlesource.com/platform/external/libpcap.git,使用 NDK 编译它的说明在这里:@987654322 @ .我可以使用当前的 NDK (r10b) 确认这可以工作...尽管您可能必须添加 AndroidManifest.xml(空白)和指向您的 Android.mk 文件的 Application.mk。

    我认为为当前的 libpcap 版本(1.6.2)修改 .mk 文件并不难

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      • 2011-07-24
      • 2014-02-14
      • 2011-08-15
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多