我試圖建立一個庫,我的NativeActivity的應用,並使用它,但它給我一個錯誤:建立和Android的NDK使用靜態庫
擁有這些文件:
-jni/
--android.mk
--application.mk
--main.cpp
--png/
---android.mk
---lodepng.c
---lodepng.h
在jni/png/
的android.mk是這樣的:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := lodepng
LOCAL_SRC_FILES := lodepng.c
# LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_CFLAGS := -DLODEPNG_NO_COMPILE_ENCODER -DLODEPNG_NO_COMPILE_DISK -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS -DLODEPNG_NO_COMPILE_CPP
include $(BUILD_STATIC_LIBRARY)
而且在jni/
的android.mk是這樣的:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myapp
LOCAL_SRC_FILES := main.cpp
# LOCAL_C_INCLUDES := $(LOCAL_PATH)/png
LOCAL_CFLAGS := -DANDROID
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := lodepng android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
include $(LOCAL_PATH)/png/android.mk
$(call import-module,android/native_app_glue)
(我已經評論了C_INCLUDES,因爲我不確定我是否需要它們。結果中使用它們沒有差異)。
我得到當我嘗試編譯它的錯誤,這是一個:
C:\workspace\myapp> C:\cygwin\bin\bash --login -c "ndk-build -C ."
Compile++ thumb : myapp <= main.cpp
Compile thumb : lodepng <= lodepng.c
StaticLibrary : liblodepng.a
SharedLibrary : libmyapp.so
C:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/..
/lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/myapp/main.o: in function init():jni/main.cpp:194:
error: undefined reference to 'lodepng_decode32(unsigned char**, unsigned int*,
unsigned int*, unsigned char const*, unsigned int)'
C:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/..
/lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/myapp/main.o: in function init():jni/main.cpp:196:
error: undefined reference to 'lodepng_error_text(unsigned int)'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libmyapp.so] Error 1
在恢復,這就像如果代碼便無法找到頭,這個LIB的。儘管如此,它編譯,所以這不是問題......
我應該修改,所以我可以利用它?
確實如此!我很驚訝一個簡單的擴展名可以在Android代碼中造成這樣的問題。非常感謝!從現在開始我會更加小心! :) – 2013-02-21 18:17:35
@MārtiņšMožeiko你能幫我在這裏http://stackoverflow.com/questions/25618201/how-to-enable-auto-complete-intellisense-for-ndk-in-eclipse – 2014-09-04 08:43:30