referenced from错误经常会遇到,原因也是很多,几乎都是因为找不到该编译哪个导致的,总结下遇到的这些
一、库文件丢失
如果提示的文件是库文件,比如说是sdk的文件,有可能是就是丢失,或者没有引用到该工程。
1.点击这个.a库,或者framework,看右边的target里面是否引用到了当前的target工程
2.看build Phases里面是否添加了要使用的库,如果是红色就是缺失了
3.看build settings里面的Framework Search Paths和Library Search Paths里面的路径是否包含了当前的库文件
二、cpp或.mm等源文件没有添加
这个和库丢失差不多,就是报的错是一个类的功能没有,这时可以看Build Phases选项里面的Compile Sources里面是否包含了这个报错的类的.cpp或者.mm文件,同样也可以直接点这个文件,看右侧是否加入当前使用的target选项里面
三、cpp或者.mm文件加多了
除了上面说的是因为没有添加报错的,还有一种是报的错的那个文件你就没有使用到
比如这个HMSDKController是没有使用的,是其他的target才使用的,这时就可能是源文件加多了,把它从Build Phases选项里面的Compile Sources里面去掉,或者点击这个源文件,取消勾选这个target就可以了。
四、库文件不支持64位编译
如果开头就是这种报错
Undefined symbols for architecture arm*64
这种的,那就有可能是你引用的这个库文件不支持64位编译,解决或者测试方法就是把build setting选项里面的Valid Architectures里面的arm64去掉,不让编译64位的
后期如果再遇到其他的再补充了,关键就是找好路径和文件
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/271.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!