1

正如这个答案中所指定的,我从 github 下载了 libjpeg 8d 并将其放在一个文件夹{ANDROID_APP}/jni/libjpeg中。这个库有它自己的Android.mk,所以我试图在我的最后包含它{ANDROID_APP}/jni/Android.mk

include $(LOCAL_PATH)/libjpeg/Android.mk

注意:我使用的是最新版本的 android NDK (r8c)

运行 ndk-build 后,我仍然收到此错误:

ANDROID_APP/jni/libfoo/foo_analysis.c:36:21: fatal error: jpeglib.h: No such file or directory

这是我的全局结构Android.mk

LOCAL_PATH := $(call my-dir)

# libFoo
include $(CLEAR_VARS) 

LOCAL_MODULE := libfoo
LOCAL_MODULE_FILENAME := libfoo
LOCAL_SRC_FILES := libfoo/foo.c libfoo/foo_analysis.c libfoo/foo_extract.c

LOCAL_STATIC_LIBRARIES := libbmp # declared previously but not shown in this example

LOCAL_CFLAGS   = ${FLAGS}
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libfoo
LOCAL_EXPORT_LDLIBS := -llog

include $(BUILD_STATIC_LIBRARY)

# libBar
include $(CLEAR_VARS)

LOCAL_MODULE := libbar
LOCAL_MODULE_FILENAME := libbar
LOCAL_SRC_FILES := bar/bar.c

LOCAL_STATIC_LIBRARIES := libfoo

LOCAL_CFLAGS   = ${FLAGS}
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/bar
LOCAL_EXPORT_LDLIBS := -llog

include $(BUILD_STATIC_LIBRARY)

# callbar
LOCAL_MODULE := libcallbar
LOCAL_MODULE_FILENAME := libcallbar
LOCAL_SRC_FILES := com_androidapp_nativeC_callbar.c

LOCAL_STATIC_LIBRARIES := libbar

LOCAL_CFLAGS   = ${FLAGS}

include $(BUILD_SHARED_LIBRARY)

#libjpeg
include $(LOCAL_PATH)/libjpeg/Android.mk

我尝试在 libFoo 模块中使用LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libfoo $(LOCAL_PATH)/libjpeg and LOCAL_C_INCLUDES := $(LOCAL_PATH)/libjpeg,但仍然遇到相同的错误。

4

1 回答 1

2

刚刚查看 jpeg8d-master 文件夹中的 Android.mk ,似乎它什么都没有。

我试图根据 STANDALONE-TOOLCHAIN.HTML 直接编译库

我下一步要做: $export NDKROOT=/home/alex/tools/android-ndk-r8c (你的 NDK 在哪里) $export SYSROOT=$NDKROOT/platforms/android-9/arch-arm (或任何其他 android 平台)

但是来自 jpeg8d-master 的文件有 windows \r 符号,我删除了 config.guess、config.sub、depcomp 而不是使用 $automake -a 命令。并从 glib-2.34.0 替换 ltmain.sh

比 $./configure CC="$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT" --host=arm -linux-androideabi $make

下一步尝试预建功能NDK - 如何在另一个项目和 NDK/PREBUILTS.HTML中使用生成的 .so 库

于 2012-12-18T18:46:57.657 回答