我正在尝试构建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文件中使用以下变量之一
有关更多详细信息,请查看ndk文件夹中的android NDK文档。
否则,如果必须链接预构建的库,则在Android NDK文档中有一节介绍如何实现结果。这些文档的在线版本也是here(PREBUILTS)。
更新2017年9月1日
有关预建库的文档可以在here中找到