Undefined symbols for architecture arm64:
"_Decoder_Interface_init", referenced from:
EM_DecodeAMRFileToWAVEFile(char const*, char const*) in amrFileCodec.o
"_Decoder_Interface_Decode", referenced from:
EM_DecodeAMRFileToWAVEFile(char const*, char const*) in amrFileCodec.o
"_Decoder_Interface_exit", referenced from:
EM_DecodeAMRFileToWAVEFile(char const*, char const*) in amrFileCodec.o
"_Encoder_Interface_init", referenced from:
EM_EncodeWAVEFileToAMRFile(char const*, char const*, int, int) in amrFileCodec.o
"_Encoder_Interface_Encode", referenced from:
EM_EncodeWAVEFileToAMRFile(char const*, char const*, int, int) in amrFileCodec.o
"_Encoder_Interface_exit", referenced from:
EM_EncodeWAVEFileToAMRFile(char const*, char const*, int, int) in amrFileCodec.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
某天遇到编译错误,操作一番,然后出现这个问题。这个问题当时困扰我和同事好久。上网翻找答案,都是讲的arm64指令集的问题。但是对于解决这问题还是一脸懵逼的状态。我晚上加班再查查了网上各类文章,试着改了改 Xcode项目 Build Settings -> Architectures的配置,如下图:
一直在这改动Architectures所支持的arm64、arm64e、armv7、armv7s指令集,如下图
但是还是解决不了,有的时候还出现了新的错误。错误我也就不摘出来了,我也不大清楚这类错误。
我转而继续看提示的错误,我发现了个amrFileCodec.o。shift+command+o 来一波,输入amrFileCodec,如下图
最后我定位到如下的文件
我给同事讲了讲,应该是这个文件编译不通。同事之前做过环信的IM遇到这类问题,她意识到是缺少了2个.a文件,她上网找到这两文件拖进项目。最后项目终于编译终于通过解决这问题。
事后,同事也跟我说了下这两文件的作用:IM音视频需要这两文件libopencore-amrwb.a(64位) 和 libopencore-amrnb.a(64位) 支持arm64,armv7,armv7s。我想到我查找这类文章的时候非常不方便,就写下这篇文章与小伙伴们分享下,希望对大家有所帮助。
联系客服