NDK 无法看到头文件 .h 文件
NDK unable to see header .h files
我正在尝试编译一个NDK项目 该项目包含用于音频压缩的OpenCoreAMR库。jni 文件夹的结构是这样的
/jni
/lib-flac
/libmp3lame
/liboggvorbis
/libopencoreamr <---- That where the compilation problem is occuring.
当我在/jni 目录中运行ndk-build NDK_LOG=1
时,我可能会出现此错误。
C:/Users/ADMIN/Desktop/EnjoderJNI/app/src/main/jni/com_nll_nativelibs_VorbisEncoder.c:149:3: warning: format '%d' expects argument of type 'int', but argument 5 has type 'jlong' [-Wformat=]
[arm64-v8a] Compile++ : encoder <= com_nll_nativelibs_amr_wrapper.cpp
[arm64-v8a] Compile++ : encoder <= com_nll_nativelibs_amr_encoder.cpp
C:/Users/ADMIN/Desktop/EnjoderJNI/app/src/main/jni/libopencoreamr/com_nll_nativelibs_amr_encoder.cpp:4:47: fatal error: com_nll_nativelibs_amr_interf_enc.h: No such file or directory
#include <com_nll_nativelibs_amr_interf_enc.h>
^
compilation terminated.
make: *** [C:/Users/ADMIN/Desktop/EnjoderJNI/app/src/main/obj/local/arm64-v8a/objs/encoder/libopencoreamr/com_nll_nativelibs_amr_encoder.o] Error 1
我不知道为什么它说 com_nll_nativelibs_amr_interf_enc.h 丢失,即使文件就在目录中。
我在 Windows 10 上使用 NDK r11C。
如何解决此问题?
Android.mk/jni 文件夹内。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LAME_LIBMP3_DIR := libmp3lame
LIBVORBIS_LIBOGG_DIR := liboggvorbis
LIBFLAC_DIR := lib-flac
LIB_OPENCORE_AMR_DIR := libopencoreamr
LOCAL_MODULE := encoder
LIBFLAC_SRC_FILES :=
$(LIBFLAC_DIR)/ogg/src/bitwise.c
$(LIBFLAC_DIR)/ogg/src/framing.c
$(LIBFLAC_DIR)/flac/src/libFLAC/bitmath.c
$(LIBFLAC_DIR)/flac/src/libFLAC/bitreader.c
$(LIBFLAC_DIR)/flac/src/libFLAC/cpu.c
$(LIBFLAC_DIR)/flac/src/libFLAC/crc.c
$(LIBFLAC_DIR)/flac/src/libFLAC/fixed.c
$(LIBFLAC_DIR)/flac/src/libFLAC/float.c
$(LIBFLAC_DIR)/flac/src/libFLAC/format.c
$(LIBFLAC_DIR)/flac/src/libFLAC/lpc.c
$(LIBFLAC_DIR)/flac/src/libFLAC/md5.c
$(LIBFLAC_DIR)/flac/src/libFLAC/memory.c
$(LIBFLAC_DIR)/flac/src/libFLAC/metadata_iterators.c
$(LIBFLAC_DIR)/flac/src/libFLAC/metadata_object.c
$(LIBFLAC_DIR)/flac/src/libFLAC/ogg_decoder_aspect.c
$(LIBFLAC_DIR)/flac/src/libFLAC/ogg_encoder_aspect.c
$(LIBFLAC_DIR)/flac/src/libFLAC/ogg_helper.c
$(LIBFLAC_DIR)/flac/src/libFLAC/ogg_mapping.c
$(LIBFLAC_DIR)/flac/src/libFLAC/stream_decoder.c
$(LIBFLAC_DIR)/flac/src/libFLAC/stream_encoder.c
$(LIBFLAC_DIR)/flac/src/libFLAC/stream_encoder_framing.c
$(LIBFLAC_DIR)/flac/src/libFLAC/window.c
$(LIBFLAC_DIR)/flac/src/libFLAC/bitwriter.c
FLACStreamEncoder.cpp
FlacUtil.cpp
LAME_LIBMP3_SRC_FILES :=
$(LAME_LIBMP3_DIR)/bitstream.c
$(LAME_LIBMP3_DIR)/fft.c
$(LAME_LIBMP3_DIR)/id3tag.c
$(LAME_LIBMP3_DIR)/mpglib_interface.c
$(LAME_LIBMP3_DIR)/presets.c
$(LAME_LIBMP3_DIR)/quantize.c
$(LAME_LIBMP3_DIR)/reservoir.c
$(LAME_LIBMP3_DIR)/tables.c
$(LAME_LIBMP3_DIR)/util.c
$(LAME_LIBMP3_DIR)/VbrTag.c
$(LAME_LIBMP3_DIR)/encoder.c
$(LAME_LIBMP3_DIR)/gain_analysis.c
$(LAME_LIBMP3_DIR)/lame.c
$(LAME_LIBMP3_DIR)/newmdct.c
$(LAME_LIBMP3_DIR)/psymodel.c
$(LAME_LIBMP3_DIR)/quantize_pvt.c
$(LAME_LIBMP3_DIR)/set_get.c
$(LAME_LIBMP3_DIR)/takehiro.c
$(LAME_LIBMP3_DIR)/vbrquantize.c
$(LAME_LIBMP3_DIR)/version.c
simple_lame_lib.c
com_nll_nativelibs_LameEncoder.cpp
com_nll_nativelibs_Lame.c
LIBVORBIS_LIBOGG_SRC_FILES :=
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/mdct.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/smallft.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/block.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/envelope.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/window.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/lsp.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/lpc.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/analysis.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/synthesis.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/psy.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/info.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/floor1.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/floor0.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/res0.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/mapping0.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/registry.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/codebook.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/sharedbook.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/lookup.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/bitrate.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/vorbisfile.c
$(LIBVORBIS_LIBOGG_DIR)/libvorbis/vorbisenc.c
com_nll_nativelibs_VorbisEncoder.c
PV_TOP := $(LOCAL_PATH)/libopencoreamr/opencore-amr-main
PV_INCLUDES := $(LOCAL_PATH)/libopencoreamr/opencode-amr-oscl
$(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/common/include
$(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/common/src
$(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/dec/include
$(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/dec/src
$(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/enc/include
$(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/enc/src
$(PV_TOP)/codecs_v2/audio/gsm_amr/common/dec/include
#include $(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/common/Android.mk
#include $(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/dec/Android.mk
#include $(PV_TOP)/codecs_v2/audio/gsm_amr/amr_nb/enc/Android.mk
LIB_OPENCORE_AMR_DIR :=
$(LIB_OPENCORE_AMR_DIR)/com_nll_nativelibs_amr_wrapper.cpp
$(LIB_OPENCORE_AMR_DIR)/com_nll_nativelibs_amr_encoder.cpp
$(LIB_OPENCORE_AMR_DIR)/com_nll_nativelibs_amr_decoder.cpp
LOCAL_SRC_FILES := $(LIBFLAC_SRC_FILES) $(LAME_LIBMP3_SRC_FILES) $(LIBVORBIS_LIBOGG_SRC_FILES) $(LIB_OPENCORE_AMR_DIR)
LOCAL_C_INCLUDES := $(PV_INCLUDES)
LIBVORBIS_LIBOGG_NATIVE_FLAGS := -I$(LOCAL_PATH)/$(LIBVORBIS_LIBOGG_DIR)/include -I$(LOCAL_PATH)/$(LIBVORBIS_LIBOGG_DIR)/libvorbis/
LAME_LIBMP3G_NATIVE_FLAGS := -I$(LOCAL_PATH)/$(LAME_LIBMP3_DIR) -I$(LOCAL_PATH)/$(LAME_LIBMP3_DIR)/vector
LIBFLAC_NATIVE_FLAGS := -I$(LOCAL_PATH)/$(LIBFLAC_DIR)/config -I$(LOCAL_PATH)/$(LIBFLAC_DIR)/ogg/include -I$(LOCAL_PATH)/$(LIBFLAC_DIR)/flac/include -I$(LOCAL_PATH)/$(LIBFLAC_DIR)/flac/src/libFLAC/include -DVERSION="1.2"
LOCAL_CFLAGS += $(LIBVORBIS_LIBOGG_NATIVE_FLAGS) $(LAME_LIBMP3G_NATIVE_FLAGS) $(LIBFLAC_NATIVE_FLAGS)
-I.
-fsigned-char
-DSTDC_HEADERS
-ffast-math
LOCAL_CPPFLAGS += -std=c++11
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -march=armv6 -marm -mfloat-abi=softfp -mfpu=vfp
endif
include $(BUILD_SHARED_LIBRARY)
确保使用 " 引用丢失的 .h 文件。
大多数情况下,开发人员会错误地使用 <> 而不是 " 来引用本地文件
#include <> is used to include framework's/library files
#include "" is used to include your own local cpp header files
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- 我在 ndk 中构建文件时遇到错误 android.mk
- 从文件问题加载纹理 Android NDK 和 OpenGL
- 我可以在 ndk 中使用带有 libc++ 的实验性文件系统吗?
- [android ndk]如何获取资产文件夹中文件的绝对路径?
- C++读取内部文件Android NDK
- 在 NDK 上编译两个带有 gradle 的项目,其中一个依赖于另一个的二进制文件
- Android NDK 中是否有异步文件 I/O
- 在 android ndk 中的同一.cpp文件上调用另一个 C++ 函数
- Android NDK生成海量只有一个功能的.so文件
- 如何通过安卓NDK加载svm训练文件
- 在Android NDK库.a文件中,gnustl_shared和gnustl_static有什么区别
- 无法使用 fstream 和 ifstream 读取 NDK C++中的文件
- Android NDK 获取二进制文件的 md5
- NDK c++从文件Android加载着色器
- 如何将文件添加到Android项目中,然后使用NDK加载它
- 使用Android NDK从字符串路径打开文件
- 对于Android Studio NDK Gradle,如何为不同文件设置不同的CFLAG
- NDK 无法看到头文件 .h 文件