Android NDK:未定义引用
Android NDK:undefined reference to ' '
我正在尝试构建g729编解码器的库文件。我有这个编解码器的来源,并尝试使用Android NDK进行构建
几乎所有的对象文件都是建立的,但最后我得到了这个错误
但我被这个错误卡住了。有人能解释这个错误的含义吗?我该怎么解决这个问题
./obj/local/armeabi-v7a/objs/g729_jni/g729/cod_ld8a.o: In function `Coder_ld8a':
/root/g729/jni/g729/cod_ld8a.c:267: undefined reference to `Pitch_ol_fast'
/root/g729/jni/g729/cod_ld8a.c:325: undefined reference to `Pitch_fr3_fast'
/root/g729/jni/g729/cod_ld8a.c:328: undefined reference to `Enc_lag3'
/root/g729/jni/g729/cod_ld8a.c:344: undefined reference to `G_pitch'
collect2: ld returned 1 exit status
感谢
编辑我已经解决了这个错误,但是否可行?我在Android.mk 中添加了这一行
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
如果您正在编译源代码并希望链接生成的库,则可以在Android.mk文件中使用以下变量之一
LOCAL_STATIC_LIBRARIES:静态库模块列表(使用BUILD_static_LIBRARRY构建)应该链接到此模块。这只有在共享库模块。
LOCAL_SHARED_LIBRARIES:此模块在运行时依赖的共享库模块的列表。这在链接时是必要的,并嵌入相应的信息在生成的文件中。
有关更多详细信息,请查看您可以在NDK文件夹中找到的android NDK文档。
否则,如果你必须链接一个预构建的库,在AndroidNDK文档中有一个部分告诉你如何实现结果。这些文件的在线版本也在这里(预构建)。
更新日期:2017年1月9日
关于预构建库的文档可以在这里找到
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 从c++调用Fortran子程序,链接时引用未定义
- 枚举引用未定义,但位于包含的头文件中