Undefined symbols for architecture arm64:ui
"_Decoder_Interface_init", referenced from:spa
EM_DecodeAMRFileToWAVEFile(char const*, char const*) in amrFileCodec.o3d
"_Decoder_Interface_Decode", referenced from:code
EM_DecodeAMRFileToWAVEFile(char const*, char const*) in amrFileCodec.o视频
"_Decoder_Interface_exit", referenced from:blog
EM_DecodeAMRFileToWAVEFile(char const*, char const*) in amrFileCodec.oip
"_Encoder_Interface_init", referenced from:it
EM_EncodeWAVEFileToAMRFile(char const*, char const*, int, int) in amrFileCodec.oio
"_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所支持的arm6四、arm64e、armv七、armv7s指令集,以下图
可是仍是解决不了,有的时候还出现了新的错误。错误我也就不摘出来了,我也不大清楚这类错误。
我转而继续看提示的错误,我发现了个amrFileCodec.o。shift+command+o 来一波,输入amrFileCodec,以下图
最后我定位到以下的文件
我给同事讲了讲,应该是这个文件编译不通。同事以前作过环信的IM遇到这类问题,她意识到是缺乏了2个.a文件,她上网找到这两文件拖进项目。最后项目终于编译终于经过解决这问题。
过后,同事也跟我说了下这两文件的做用:IM音视频须要这两文件libopencore-amrwb.a(64位) 和 libopencore-amrnb.a(64位) 支持arm64,armv7,armv7s。我想到我查找这类文章的时候很是不方便,就写下这篇文章与小伙伴们分享下,但愿对你们有所帮助。