我创建了一个头文件" abc.h"声明
int abc();
然后,我创建了一个.cpp文件" abc.cpp"定义
int abc()
{
return 10;
}
现在我从上面的文件创建了一个库libabc.so。
然后我创建了一个HelloWorld Android项目。然后我在jni中创建了一个lib文件夹,并将libabc.so文件设置为init。
现在我创建了另一个文件" xyz.cpp"在jni文件夹中想要使用abc()
功能。
但是当我运行ndk-build
命令时,我收到此错误。
Error: undefined reference to function abc
。
这是xyz.cpp文件。
int getAbcFunction()
{
int value = abc();
// return value;
}
jni中的Android.mk ---> lib文件夹
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := abc-prebuild
LOCAL_SRC_FILES := libabc.so
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
jni文件夹中的Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := helloworld
LOCAL_SRC_FILES := xyz.cpp
LOCAL_SHARED_LIBRARIES := abc-prebuild
include $(BUILD_SHARED_LIBRARY)
如何解决此错误。
答案 0 :(得分:0)
将#include "abc.h"
添加到xyz.cpp的开头