Undefined symbols for architecture arm64:

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。我想到我查找这类文章的时候很是不方便,就写下这篇文章与小伙伴们分享下,但愿对你们有所帮助。

相关文章
相关标签/搜索