referenced from错误经常会遇到,原因也是很多,几乎都是因为找不到该编译哪个导致的,总结下遇到的这些

一、库文件丢失

如果提示的文件是库文件,比如说是sdk的文件,有可能是就是丢失,或者没有引用到该工程。

1.点击这个.a库,或者framework,看右边的target里面是否引用到了当前的target工程

屏幕快照 2016-02-23 17.14.19.jpg

2.看build Phases里面是否添加了要使用的库,如果是红色就是缺失了

3.看build settings里面的Framework Search Paths和Library Search Paths里面的路径是否包含了当前的库文件

二、cpp或.mm等源文件没有添加

这个和库丢失差不多,就是报的错是一个类的功能没有,这时可以看Build Phases选项里面的Compile Sources里面是否包含了这个报错的类的.cpp或者.mm文件,同样也可以直接点这个文件,看右侧是否加入当前使用的target选项里面

三、cpp或者.mm文件加多了

除了上面说的是因为没有添加报错的,还有一种是报的错的那个文件你就没有使用到

屏幕快照 2016-02-23 17.07.23.jpg

比如这个HMSDKController是没有使用的,是其他的target才使用的,这时就可能是源文件加多了,把它从Build Phases选项里面的Compile Sources里面去掉,或者点击这个源文件,取消勾选这个target就可以了。

四、库文件不支持64位编译

如果开头就是这种报错

Undefined symbols for architecture arm*64

这种的,那就有可能是你引用的这个库文件不支持64位编译,解决或者测试方法就是把build setting选项里面的Valid Architectures里面的arm64去掉,不让编译64位的

后期如果再遇到其他的再补充了,关键就是找好路径和文件


☟☟可点击下方广告支持一下☟☟

最后修改:1970 年 01 月 01 日
请我喝杯可乐,请随意打赏: ☞已打赏列表