Android NDK-build中的libpcap静态链接错误(对pcap API的未定义引用)

萨瓦维阿皮

我正在尝试在Android nexus-7 wifi平板电脑(代码名称:grouper)运行packetspammer应用程序。我下载了libpcap库,并能够生成静态库(libpcap.a)。但是,当我尝试使用NDK-build构建packetspammer应用程序时,我不断收到链接器错误。

我的文件夹结构如下所示:

packetspammer
|
jni
  |
  packetspammer source files
  Android.mk file that links in libpcap and builds the packetspammer binary
  <Directory>platform_external_libpcap 
       |
       libpcap.a file

这是我的android.mk文件:

#Links the libpcap library
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := platform_external_libpcap/libpcap
LOCAL_SRC_FILES := platform_external_libpcap/libpcap.a
LOCAL_EXPORT_C_INCLUDES := platform_external_libpcap
include $(PREBUILT_STATIC_LIBRARY)

#Builds packetspammer app
include $(call all-subdir-makefiles)
include $(CLEAR_VARS)

LOCAL_MODULE    := packetspammer
LOCAL_SRC_FILES := radiotap.c packetspammer.c 
LOCAL_STATIC_LIBRARIES  := platform_external_libpcap/libpcap.a
LOCAL_C_INCLUDES := ~/android/android-ndk-r10b/platforms/android-L/arch-arm/usr/include \
                ~/packetspammer/jni/platform_external_libpcap

TARGET_ARCH     := arm

include $(BUILD_SHARED_LIBRARY)

这些是我收到的错误消息:

error: undefined reference to 'pcap_open_live'
error: undefined reference to 'pcap_datalink'
error: undefined reference to 'pcap_compile'
error: undefined reference to 'pcap_geterr'
error: undefined reference to 'pcap_setfilter'
error: undefined reference to 'pcap_geterr'
error: undefined reference to 'pcap_freecode'
error: undefined reference to 'pcap_setnonblock'
error: undefined reference to 'pcap_next_ex'
error: undefined reference to 'pcap_inject'

您能告诉我Android.mk文件或我遵循的过程有什么问题吗?我查看了NDK程序员指南,并遵循“ Building / Standalone工具链”一节以及“ Building / Android.mk”一节。即使使用独立工具链,我也会遇到相同的链接器错误。

在被困在这里之前,我发现了很多帖子可以帮助我解决一些错误。以下是这些链接:

静态链接时未定义参考错误;

连接第三方库;

链接静态库时遇到麻烦;

使用预编译的静态库

用于Android的libpcap ;

使用android ndk编译libpcap

移植JNetPcap

萨瓦维阿皮

我能够解决此问题。我遵循了这个SO问题中的公认答案(使用android ndk编译libpcap),并从该站点下载了libpcap

我编译并构建了libpcap.a静态库,将其链接到packetspammer android.mk文件中,并获得了最终的可执行文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android NDK返回错误“未定义对'rand'的引用”

来自分类Dev

Android NDK:未定义的引用错误

来自分类Dev

Android NDK:对“ stderr”的未定义引用

来自分类Dev

Android NDK链接器错误:错误:对std :: basic_string的未定义引用

来自分类Dev

Android NDK链接器错误:错误:对std :: basic_string的未定义引用

来自分类Dev

链接器错误Android-NDK:对“ G_STATIC_ASSERT”的未定义引用

来自分类Dev

将 Android 项目(未定义的引用)中的 Boost::regex 与 crystax ndk 链接时出错

来自分类Dev

如何解决Android NDK中的“对'ntohl'的未定义引用”编译错误?

来自分类Dev

建立Android NDK库无法解决“未定义的引用”错误

来自分类Dev

Android NDK项目中的未定义参考错误

来自分类Dev

Android NDK:未定义的参考

来自分类Dev

Android NDK.Build命令失败。未定义参考。clang ++:错误:链接器命令失败,退出代码为1

来自分类Dev

Android NDK-Android Studio Gradle对__android_log_write的未定义引用

来自分类Dev

如何从NDK构建的静态库中解析NDK构建的静态库中的“对<myfunction>的未定义引用”?

来自分类Dev

如何从NDK构建的静态库中解决NDK构建的静态库中的“对<myfunction>的未定义引用”?

来自分类Dev

编译项目时出现未定义的参考错误(ANDROID NDK)

来自分类Dev

尝试在Android上使用专为ARM64构建的Tensorflow-Lite C API时使用未定义的引用-NDK ARM独立工具链

来自分类Dev

Android:错误:对“ android_atomic_dec”的未定义引用

来自分类Dev

Android:错误:对“ android_atomic_dec”的未定义引用

来自分类Dev

Android链接器:对bsd_signal的未定义引用

来自分类Dev

在Android中对'cv :: initModule_nonfree()'的未定义引用

来自分类Dev

使用Android NDK编译libpcap

来自分类Dev

与Android NDK相关的错误

来自分类Dev

OPENCV的ANDROID NDK错误

来自分类Dev

Android NDK中的新手:Android.mk中的定义

来自分类Dev

Android NDK中的新手:Android.mk中的定义

来自分类Dev

Android Studio | CPP文件错误错误:位图库中未定义对“ AndroidBitmap_unlockPixels”的引用

来自分类Dev

使用 NDK r16b 未定义引用 bsd_signal 为 64 位 Android 构建 OpenSSL 1.0.2n

来自分类Dev

gcc静态链接未定义的引用

Related 相关文章

  1. 1

    Android NDK返回错误“未定义对'rand'的引用”

  2. 2

    Android NDK:未定义的引用错误

  3. 3

    Android NDK:对“ stderr”的未定义引用

  4. 4

    Android NDK链接器错误:错误:对std :: basic_string的未定义引用

  5. 5

    Android NDK链接器错误:错误:对std :: basic_string的未定义引用

  6. 6

    链接器错误Android-NDK:对“ G_STATIC_ASSERT”的未定义引用

  7. 7

    将 Android 项目(未定义的引用)中的 Boost::regex 与 crystax ndk 链接时出错

  8. 8

    如何解决Android NDK中的“对'ntohl'的未定义引用”编译错误?

  9. 9

    建立Android NDK库无法解决“未定义的引用”错误

  10. 10

    Android NDK项目中的未定义参考错误

  11. 11

    Android NDK:未定义的参考

  12. 12

    Android NDK.Build命令失败。未定义参考。clang ++:错误:链接器命令失败,退出代码为1

  13. 13

    Android NDK-Android Studio Gradle对__android_log_write的未定义引用

  14. 14

    如何从NDK构建的静态库中解析NDK构建的静态库中的“对<myfunction>的未定义引用”?

  15. 15

    如何从NDK构建的静态库中解决NDK构建的静态库中的“对<myfunction>的未定义引用”?

  16. 16

    编译项目时出现未定义的参考错误(ANDROID NDK)

  17. 17

    尝试在Android上使用专为ARM64构建的Tensorflow-Lite C API时使用未定义的引用-NDK ARM独立工具链

  18. 18

    Android:错误:对“ android_atomic_dec”的未定义引用

  19. 19

    Android:错误:对“ android_atomic_dec”的未定义引用

  20. 20

    Android链接器:对bsd_signal的未定义引用

  21. 21

    在Android中对'cv :: initModule_nonfree()'的未定义引用

  22. 22

    使用Android NDK编译libpcap

  23. 23

    与Android NDK相关的错误

  24. 24

    OPENCV的ANDROID NDK错误

  25. 25

    Android NDK中的新手:Android.mk中的定义

  26. 26

    Android NDK中的新手:Android.mk中的定义

  27. 27

    Android Studio | CPP文件错误错误:位图库中未定义对“ AndroidBitmap_unlockPixels”的引用

  28. 28

    使用 NDK r16b 未定义引用 bsd_signal 为 64 位 Android 构建 OpenSSL 1.0.2n

  29. 29

    gcc静态链接未定义的引用

热门标签

归档