android函数未定义,android – 使用NDK对静态库中的函数进行未定义的引用

所以我试图在我的本机代码上使用libopus来安装

Android应用程序.

我的Android.mk文件如下所示:

PLATFORM_PREFIX := /opt/android-ext/

LOCAL_PATH := $(PLATFORM_PREFIX)/lib

include $(CLEAR_VARS)

LOCAL_MODULE := libopus

LOCAL_SRC_FILES := libopus.a

include $(PREBUILT_STATIC_LIBRARY)

# I have to redeclare LOCAL_PATH because the library is in /opt/android-ext/

# and my project is somewhere else. Not very elegant.

LOCAL_PATH := /home/sergio/workspace/Project/jni

include $(CLEAR_VARS)

LOCAL_MODULE := opusUtilsNative

LOCAL_SRC_FILES := opusUtilsNative.c

LOCAL_C_INCLUDES += $(PLATFORM_PREFIX)/include

LOCAL_STATIC_LIBRARIES := android_native_app_glue libopus

include $(BUILD_SHARED_LIBRARY)

我在opusUtilsNative.c中的代码如下所示:

#include "opusUtilsNative.h"

#include

#include

JNIEXPORT jbyteArray JNICALL Java_Project_OpusUtils_encode

(JNIEnv * je, jclass jc, jbyteArray data){

int rc;

opus_int16 * testOutBuffer;

unsigned char* opusBuffer;

OpusDecoder *dec;

dec = opus_decoder_create(48000, 2, &rc);

return data;

}

当我尝试构建它时,只有当我删除使用“opus_decoder_create”函数的行时它才能正常工作.否则我会得到这个:

error: undefined reference to 'opus_decoder_create'

我可以看到opus_decoder_create在opus.h上明确定义,显然是包含在内,因为如果我排除该行,我将得到关于opus_int16和OpusDecoder声明的错误.为什么要包含一些定义而有些定义不包括在内?

任何帮助将不胜感激.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值