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。我想到我查找这类文章的时候非常不方便,就写下这篇文章与小伙伴们分享下,希望对大家有所帮助。

 

 

 

 

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/gsjxin/p/14011878.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!