【发布时间】:2013-11-28 20:17:24
【问题描述】:
我正在尝试创建具有结构的 android jni 项目。
我想创建静态库 test_module 并将其包含到主共享库监视器中
jni目录包含
jni
|-> MonitorPreview.cpp
|-> Processor.cpp
|-> Android.mk
|-> test_module
|-> IModule.cpp
|-> TestModule.cpp
|-> Android.mk
在哪里 jni/Android.mk
LOCAL_PATH := $(call my-dir)
MY_ROOT := $(LOCAL_PATH)
include $(call all-subdir-makefiles)
include $(CLEAR_VARS)
LOCAL_PATH := $(MY_ROOT)
LOCAL_MODULE := monitor
LOCAL_C_INCLUDES := $(LOCAL_PATH)/test_module
LOCAL_SRC_FILES := MonitorPreview.cpp \
Processor.cpp
LOCAL_STATIC_LIBRARIES := test_module
LOCAL_LDLIBS := -llog -landroid
include $(BUILD_SHARED_LIBRARY)
$(call import-module, test_module)
jni/test_module/Android.mk
LOCAL_PATH := $(call my-dir)
$(info local path = $(LOCAL_PATH))
include $(CLEAR_VARS)
LOCAL_MODULE := test_module
LOCAL_SRC_FILES := IModule.cpp \
TestModule.cpp
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILD_STATIC_LIBRARY)
ndk 构建失败并出现错误
/home/pavel/android_dev/android-ndk-r8e/ndk-build all
local path = jni/test_module
SharedLibrary : libmonitor.so
/home/pavel/android_dev/android-ndk-r8e/toolchains/arm-linux-androideabi- 4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux- androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/monitor/Processor.o: in function hrm::Processor::Processor():jni/Processor.cpp:15: error: undefined reference to 'hrm::TestModule::TestModule()'
`collect2: ld returned 1 exit status
make: *** [obj/local/armeabi-v7a/libmonitor.so] Error 1`
抱歉英语不好。
请帮忙。
【问题讨论】:
标签: android c++ android-ndk