"_OBJC_CLASS_$_XXX",referenced from: 之类的问题,很多人看到这些很头疼,不知道从何下手去修改。以下是我总结的相关修改办法。如下图

  

这是一个很明显的在arm64架构下,找不到定义的错误。  这类错误我总结的就六种,.m 缺失、静态库没导入(不支持arm64 架构,现在基本都支持了,如果不支持更新相关静态库。怎么查看参考文末)、library路径问题、header 文件路径、Valid Architectures 指定错误,连接器参数问题

 1.那么首先检查 Architectures 选项

  通常情况下,Build Active Architectures Only  在Debug 模式为YES,Release模式为NO。

        Valid Architectures  为 arm64 armv7 armv7s

  需要你了解的是  只有连接了Active 的调试设备,这个选项才生效,只编译当前设备对应的指令集。如果你没有连接设备,那么这里即使是YES,也不会生效。编译器会按照你的Valid Architectures和Architectures指定的二进制包进行编译。

具体参考

   armv6 设备: iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch

   armv7 设备: iPhone3GS, iPhone4, iPhone4S

                        iPad, iPad2, iPad3(The New iPad), iPad mini

                        iPod Touch 3G, iPod Touch4

  armv7s设备: iPhone5, iPhone5C, iPad4(iPad with Retina Display)

  arm64 设备: iPhone5S, iPad Air, iPad mini2(iPad mini with Retina Display)  之后出的到X都是arm64的设备了

    2. 向 Link Binary With Libraries 中 添加相应的framework   ,向Compile Source 添加你缺失的.m

3.修改 Other Linker Flags   添加 -ObjC 和 $(inherited),(也可以直接添加缺失的framework 如:  -framework "frameworkname" )

  4. Header Search Path 和Library  Search Path 先添加$(inherited),如果编译后,没有出现,就手拖缺失文件的相关路径(如果路径为多层级,选择递归搜索recursive 默认是non-recursive)

5.最后检查 framework 和.m 有没有 勾选 target membership 。

  

  总之,如果先思考是静态库问题,还是其他文件问题,会节约很多时间。以上总结,以留档备查,也希望可以给别人一些思路。

  实例 1:      错误信息中有明显的提示  does not contain bitcode。  所以 直接设置 bitcode 为NO 就可以了

附:

查看.a或.framework 的静态库文件都支持哪些架构, 终端 进入工程根目录 find . -name *.a -exec lipo -info "{}" \  或者.framework

最新文章

  1. 从零开始编写自己的C#框架(22)——添加普通列表页面
  2. jquery validate表单验证插件-推荐
  3. IE6下z-index失效
  4. 如何在不影响数据库的正常使用的情况下得到数据的完整.mdf和.ldf文
  5. Installing the Eclipse Plugin
  6. Win32/MFC/COM学习推荐书籍
  7. DOM基础(四)
  8. 《天书夜读:从汇编语言到windows内核编程》七 内核字符串与内存
  9. 用户注册之后,通过网易邮箱服务器(smtp.163.com)发送电子邮箱到注册者邮箱的的确认通知短信.(可根据需求自行调整)
  10. docker 复制镜像和复制容器
  11. IEC2017级_1-2班两次博客作业成绩说明
  12. 7.地图随机装饰,与转化过程补充,与ai的设计思路
  13. swift 学习- 23 -- 扩展
  14. 061 SparkStream数据接收原理
  15. HTML 转义字符对照表
  16. ajax无刷新方式对form表单进行赋值!
  17. jdk 与jre
  18. Ajax—web中ajax的常用方式
  19. 五、Django之视图和模板-Part 3
  20. Daily Scrumming* 2015.10.29(Day 10)

热门文章

  1. 理解vuex的状态管理模式架构
  2. Java中流-----个人总结心得
  3. 《Google软件测试之道》【PDF】下载
  4. Redis4.0.0 安装及配置 (Linux — Centos7)
  5. Android(Java) 字符串的常用操作,获取指定字符出现的次数,根据指定字符截取字符串
  6. Docker Stack 集群部属服务
  7. ABP PUT、DELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法(HTTP 谓词) 引发客户端错误 No 'Access-Control-Allow-Origin' header is present on the requested resource
  8. bzoj 4012: [HNOI2015]开店 主席树
  9. Docker(七):Docker容器卷管理
  10. 【Tomcat】重新打war包