gpt4 book ai didi

java - 如何在 jni 中链接 prebuild

转载 作者:太空宇宙 更新时间:2023-11-04 13:29:26 25 4
gpt4 key购买 nike

我已经创建了一个带有声明的头文件“abc.h”

int abc();

然后,我创建了一个带有定义的.cpp 文件“abc.cpp”

int abc()
{
return 10;
}

现在我从上面的文件创建了一个库 libabc.so。

然后我创建了一个 HelloWorld Android 项目。然后我在 jni 中创建了一个 lib 文件夹,并把 libabc.so 文件放在 init 中。

现在我在 jni 文件夹中创建了另一个文件“xyz.cpp”,它想要使用 abc() 函数。 但是当我运行 ndk-build 命令时,我得到了这个错误。 错误:对函数 abc 的 undefined reference

这是 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)

如何解决这个错误。

最佳答案

在xyz.cpp的开头添加#include "abc.h"

关于java - 如何在 jni 中链接 prebuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32087522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com