NDK-BUILD: make: *** No rule to make target 错误与 Libpcap
NDK-BUILD: make: *** No rule to make target Error with Libpcap
当我在我的项目上 运行 ndk-build 时,出现以下错误:
> Android NDK: WARNING: APP_PLATFORM android-21 is larger than
> android:minSdkVersion 15 in ./AndroidManifest.xml [arm64-v8a]
> Compile : pcap <= pcap-linux.c jni/libpcap/pcap-linux.c:118:0:
> warning: "_GNU_SOURCE" redefined #define _GNU_SOURCE ^
> <command-line>:0:0: note: this is the location of the previous
> definition [arm64-v8a] Compile : pcap <= pcap-usb-linux.c
> [arm64-v8a] Compile : pcap <= pcap-can-linux.c make: *** No
> rule to make target `jni/libpcap/pcap-netfilter-linux-android.c',
> needed by
> `obj/local/arm64-v8a/objs/pcap/pcap-netfilter-linux-android.o'. Stop.
这是我的 Android.mk libpcap
文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
libpcap_PSRC = pcap-linux.c pcap-usb-linux.c pcap-can-linux.c pcap-netfilter-linux-android.c pcap-netfilter-linux.c
libpcap_FSRC = fad-gifc.c
libpcap_CSRC = pcap.c inet.c gencode.c optimize.c nametoaddr.c etherent.c savefile.c sf-pcap.c sf-pcap-ng.c pcap-common.c bpf_image.c bpf_dump.c
libpcap_GENSRC = scanner.c grammar.c bpf_filter.c version.c
libpcap_SRC = $(libpcap_PSRC) $(libpcap_FSRC) $(libpcap_CSRC) $(libpcap_GENSRC)
LOCAL_SRC_FILES:= $(libpcap_SRC)
LOCAL_CFLAGS:=-O2 -g -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -Dlinux -D__GLIBC__ -D_GNU_SOURCE
LOCAL_EXPORT_C_INCLUDE_DIRS:= $(LOCAL_PATH)
LOCAL_MODULE:= libpcap
include $(BUILD_STATIC_LIBRARY)
查看之前提出的其他几个问题,我已从 makefile 中删除了所有不必要的空格,并且据我所知确保 makefile 中也没有错误。
我不确定是什么原因导致了这个问题。我是 NDK 的新手,事实上,这是非常基本的 hello world 应用程序,我正在构建它以更多地了解 NDK 并将 LIBPCAP 纳入项目。
我使用的是 libpcap 版本 1.5.2,NDK 版本:r10e-rc4(64 位)
感谢您的帮助。
明白了...错误的原因是我的主 Android.mk 文件正在构建可执行文件,而我的 JNI 代码没有任何 main() 函数。
当我在我的项目上 运行 ndk-build 时,出现以下错误:
> Android NDK: WARNING: APP_PLATFORM android-21 is larger than > android:minSdkVersion 15 in ./AndroidManifest.xml [arm64-v8a] > Compile : pcap <= pcap-linux.c jni/libpcap/pcap-linux.c:118:0: > warning: "_GNU_SOURCE" redefined #define _GNU_SOURCE ^ > <command-line>:0:0: note: this is the location of the previous > definition [arm64-v8a] Compile : pcap <= pcap-usb-linux.c > [arm64-v8a] Compile : pcap <= pcap-can-linux.c make: *** No > rule to make target `jni/libpcap/pcap-netfilter-linux-android.c', > needed by > `obj/local/arm64-v8a/objs/pcap/pcap-netfilter-linux-android.o'. Stop.
这是我的 Android.mk libpcap
文件LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
libpcap_PSRC = pcap-linux.c pcap-usb-linux.c pcap-can-linux.c pcap-netfilter-linux-android.c pcap-netfilter-linux.c
libpcap_FSRC = fad-gifc.c
libpcap_CSRC = pcap.c inet.c gencode.c optimize.c nametoaddr.c etherent.c savefile.c sf-pcap.c sf-pcap-ng.c pcap-common.c bpf_image.c bpf_dump.c
libpcap_GENSRC = scanner.c grammar.c bpf_filter.c version.c
libpcap_SRC = $(libpcap_PSRC) $(libpcap_FSRC) $(libpcap_CSRC) $(libpcap_GENSRC)
LOCAL_SRC_FILES:= $(libpcap_SRC)
LOCAL_CFLAGS:=-O2 -g -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -Dlinux -D__GLIBC__ -D_GNU_SOURCE
LOCAL_EXPORT_C_INCLUDE_DIRS:= $(LOCAL_PATH)
LOCAL_MODULE:= libpcap
include $(BUILD_STATIC_LIBRARY)
查看之前提出的其他几个问题,我已从 makefile 中删除了所有不必要的空格,并且据我所知确保 makefile 中也没有错误。
我不确定是什么原因导致了这个问题。我是 NDK 的新手,事实上,这是非常基本的 hello world 应用程序,我正在构建它以更多地了解 NDK 并将 LIBPCAP 纳入项目。
我使用的是 libpcap 版本 1.5.2,NDK 版本:r10e-rc4(64 位)
感谢您的帮助。
明白了...错误的原因是我的主 Android.mk 文件正在构建可执行文件,而我的 JNI 代码没有任何 main() 函数。