Từ this tutorial.Cách liên kết bất kỳ thư viện nào trong ứng dụng ndk
thấy tôi có một thư viện tĩnh trước khi xây dựng tên là stackoverflow.a
và nó có stackoverflow.h
bây giờ tôi muốn sử dụng chức năng của thư viện tĩnh trong
ndk_demo.c
// hướng dẫn có file này
cho rằng bên ndk_demo.c
tôi đã thêm
#include 'stackoverflow.h'
Sửa
inside `android-ndk-r7c`
|
apps
|
ndk_demo
|
-----------------
| |
project Application.mk
|
--------------------
| |
all other |
folder jni
|
-------------------------------------------------------------------
| | | | |
ndk_demo.c stackoverflow.h lib com_marakana Android.mk
| _NativeLib.h
|
--------------------
| |
Android.mk libstackoverflow.a
Bây giờ Application.mk
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := ndk_demo stackover
Bây giờ JNI/Android.mk
include $(call all-subdir-makefiles)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndk_demo
LOCAL_SRC_FILES := ndk_demo.c
LOCAL_STATIC_LIBRARIES := stackover
include $(BUILD_SHARED_LIBRARY)
tại JNI/lib/Và roid.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := stackover
LOCAL_SRC_FILES := libstackoverflow.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
Bây giờ từ android-ndk-r7c
thư mục tôi chạy
make APP=ndk_demo
nó cho thấy tôi lỗi như
Android NDK: Building for application 'ndk_demo'
make: *** No rule to make target `build/core/ndk_demo.c', needed by `out/apps/ndk_demo/armeabi/objs/ndk_demo/ndk_demo.o'. Stop.
lý do tại sao điều này xảy ra tôi không nhận được?
nếu tôi bình luận
#include $(call all-subdir-makefiles)
này từ jni/Android.mk
sau đó nó cho thấy lỗi sau
Android NDK: Building for application 'ndk_demo'
Compile thumb : ndk_demo <= ndk_demo.c
SharedLibrary : libndk_demo.so
./out/apps/ndk_demo/armeabi/objs/ndk_demo/ndk_demo.o: In function `Java_com_marakana_NativeLib_hello':
/home/jeegar/android-ndk-r7c/apps/ndk_demo/project/jni/ndk_demo.c:10: undefined reference to `stackoverflowInit'
collect2: ld returned 1 exit status
make: *** [out/apps/ndk_demo/armeabi/libndk_demo.so] Error 1
Bạn có thể đăng lệnh biên dịch và liên kết xuất ra khỏi makefile không? – ams
trùng lặp: http://stackoverflow.com/questions/6165813/using-my-own-prebuilt-shared-library-in-an-android-ndk-project – bitwise
@Nick vui lòng xem cập nhật của tôi –