首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义的lame解码函数

未定义的lame解码函数
EN

Stack Overflow用户
提问于 2016-05-09 01:31:59
回答 1查看 631关注 0票数 1

我正在尝试为我的安卓应用程序添加MP3读写功能。我正在使用lame4android应用程序作为起点。对文件进行编码对我来说是可行的,但是我在使用解码函数时遇到了问题--我得到了对解码函数的未定义引用。

下面是我的wrapper.c的摘录:

代码语言:javascript
复制
#include "libmp3lame/lame.h"
#include "jni.h"

lame_t lame;

jint Java_com_intonia_dandy_WavStream_initEncoder(JNIEnv *env,
                                                  jobject jobj,
                                                  jint in_num_channels,
                                                  jint in_samplerate)
{
    lame = lame_init();
    ...
    return lame_init_params(lame);
}

hip_t hip;

jint Java_com_intonia_dandy_WavStream_initDecoder(JNIEnv *env, jobject jobj)
{
    hip = hip_decode_init();
    return hip != 0;
}

下面是lame.h的声明:

代码语言:javascript
复制
lame_global_flags * CDECL lame_init(void);

typedef hip_global_flags *hip_t;
hip_t CDECL hip_decode_init(void);

我收到一条错误消息:

代码语言:javascript
复制
C:/ACode/dandy/src/main/jni/./wrapper.c:62: undefined reference to `hip_decode_init`

我还得到了对hip_decodehip_decode_exit的未定义引用。但lame_initlame_init_paramslame_encode_bufferlame_encode_flush不会生成任何错误。我使用命令行运行ndk-build时得到了这些错误,当我让Android Studio管理编译时也得到了同样的错误。

lame_*函数与hip_decode_*函数有何不同?我应该使用过时的lame_decode_*吗?

编辑:我正在查看ndk-build命令的输出。.c文件在编译时会在控制台上列出。hip_decode_init是在jni/libmp3lame/mpglib_interface.c中定义的,但是即使在jni/Android.mk中列出了mpglib_interface,它也没有被编译。有何不可?

EN

回答 1

Stack Overflow用户

发布于 2016-05-09 04:29:12

事实证明,作为分布式的LAME库没有启用解码。为了让它正常工作,我必须执行以下操作:

  1. #define HAVE_MPGLIB 1添加到LAME
    1. 的mpglib目录中的所有.c和.h文件,以包括mpglib中的.c文件。

编辑:与其修改mpglib_interface.c来定义HAVE_MPGLIB,不如设置编译标志。

使用Android Studio 2+,build.gradle应该包含

代码语言:javascript
复制
android {
    defaultConfig {
        ndk {
            moduleName "libmp3lame"
            cFlags "-DSTDC_HEADERS -DHAVE_MPGLIB"
        }
    }
}

或者在Android.mk中:

代码语言:javascript
复制
LOCAL_CFLAGS = -DSTDC_HEADERS -DHAVE_MPGLIB
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37102769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档