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

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libfoo $(LOCAL_PATH)/libjpeg libFoo モジュールで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 記号が含まれており、$automake -a コマンドを使用するよりも config.guess、config.sub、depcomp を削除しました。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 を試す - 生成された .so ライブラリを別のプロジェクトと NDK/PREBUILTS.HTMLで使用する方法

于 2012-12-18T18:46:57.657 に答える