为android构建bspatch

为android构建bspatch,android,android-ndk,Android,Android Ndk,我需要从bsdiff-4.3构建bspatch.c,以便在运行KitKat的android平板电脑上工作,但我不断遇到以下错误 puter@radio:~/newWorkspace/AndroidCode$ $NDK_ROOT/ndk-build [armeabi] Compile thumb : bspatch <= bspatch.c [armeabi] Executable : bspatch /home/puter/android-ndk-r10c/toolchains/

我需要从bsdiff-4.3构建bspatch.c,以便在运行KitKat的android平板电脑上工作,但我不断遇到以下错误

puter@radio:~/newWorkspace/AndroidCode$ $NDK_ROOT/ndk-build
[armeabi] Compile thumb  : bspatch <= bspatch.c
[armeabi] Executable     : bspatch
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:119: error: undefined reference to 'BZ2_bzReadOpen'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:126: error: undefined reference to 'BZ2_bzReadOpen'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:133: error: undefined reference to 'BZ2_bzReadOpen'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:148: error: undefined reference to 'BZ2_bzRead'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:165: error: undefined reference to 'BZ2_bzRead'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:184: error: undefined reference to 'BZ2_bzRead'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:195: error: undefined reference to 'BZ2_bzReadClose'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:196: error: undefined reference to 'BZ2_bzReadClose'
/home/puter/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/bspatch/bspatch.o: in function main:jni/bspatch.c:197: error: undefined reference to 'BZ2_bzReadClose'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/bspatch] Error 1

这个bug在很多地方都有记录,例如,但我仍然不知道如何修复它。我是一名初级java开发人员,但没有C++或C++的经验,所以任何帮助都是非常值得赞赏的。

< P>我为任何一个类似问题的人找到了解决办法。 我将我的Android.mk改为

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := bspatch.c bzlib.c crctable.c randtable.c decompress.c huffman.c
LOCAL_MODULE := bspatch
LOCAL_C_INCLUDES := /home/puter/android-ndk-r10c/sources/third_party/bzip2/
include $(BUILD_EXECUTABLE)
并将源文件和导致中未定义错误的方法复制到项目的jni文件夹中

在那之后,它会建造得很好

puter@radio:~/newWorkspace/AndroidCode$ /home/puter/android-ndk-r10c/ndk-build
[armeabi] Compile thumb  : bspatch <= bspatch.c
[armeabi] Compile thumb  : bspatch <= bzlib.c
[armeabi] Compile thumb  : bspatch <= crctable.c
[armeabi] Compile thumb  : bspatch <= randtable.c
[armeabi] Compile thumb  : bspatch <= decompress.c
[armeabi] Compile thumb  : bspatch <= huffman.c
[armeabi] Executable     : bspatch
[armeabi] Install        : bspatch => libs/armeabi/bspatch
puter@radio:~/newWorkspace/AndroidCode$/home/puter/android-ndk-r10c/ndk build
[armeabi]编译thumb:bspatch
puter@radio:~/newWorkspace/AndroidCode$ /home/puter/android-ndk-r10c/ndk-build
[armeabi] Compile thumb  : bspatch <= bspatch.c
[armeabi] Compile thumb  : bspatch <= bzlib.c
[armeabi] Compile thumb  : bspatch <= crctable.c
[armeabi] Compile thumb  : bspatch <= randtable.c
[armeabi] Compile thumb  : bspatch <= decompress.c
[armeabi] Compile thumb  : bspatch <= huffman.c
[armeabi] Executable     : bspatch
[armeabi] Install        : bspatch => libs/armeabi/bspatch