工作中遇到的编译错误

2016-03-29  本文已影响135人  蚂蚁牙齿不黑

      工作中项目工程编译时会遇到很多报错,解决办法基本是百度,有些问题之前遇到过了但时间长了容易忘记当时的解决办法,所以有必要把今后的这些问题汇总起来,没事的时候拿出来看看


Question  1:

The file “XXX” couldn’t be opened because you don’t have permission to view it

截图

解决办法:

xcode—》file-》Workspace Settings

重新编译   搞定!

Question  2:

很久之前写的代码今天拿出来运行  结果报了一堆错误   找不到框架 ?

报错截图

解决办法:

打开终端  cd + 项目路径       然后   pod  update   

重新编译   ok

Question  3:

近期接手一个企业管理项目,网络请求用的是ASIHTTPRequest   这个库历史悠久 是MRC环境下的产物,所以这就用到了MRC 与 ARC 混编 ,其实也很简单  先看下项目中导入MRC文件会有什么影响  

20个编译错误

可以看到有20个错误,都是因为用了retain  release  这些MRC中的关键字

解决办法:为特定的一些MRC文件添加标签

为ASI的源文件添加标签

重新编译  尚未搞定  还有7个错误  如下图

接下来导入一个系统库文件(libz.1.2.5.tbd)

导入libz

再次编译  搞定!

Question  4:

公司正在集成支付宝SDK ,AlipaySDK依赖了很多系统的api ,第一次编译遇到了30个错

Undefined symbols for architecture x86_64:

"_CNCopyCurrentNetworkInfo", referenced from:  

 解决办法:集成SystemConfiguration.framework  减少为19个

Undefined symbols for architecture x86_64:

"_CTRadioAccessTechnologyCDMA1x", referenced from:

解决办法:集成CoreTelephony.framework  减少为14个

Undefined symbols for architecture x86_64:

"_OBJC_CLASS_$_CMMotionManager", referenced from:

解决办法:集成CoreMotion.framework 减少为13个

Undefined symbols for architecture x86_64:

"std::__1::basic_string, std::__1::allocator >::__init(char const*, unsigned long)", referenced from:

解决办法: 集成libc++.tbd    libz.tbd

Question  5:

       有时候在拿到别人的项目的时候,运行时会遇到一些找不到头文件的错误,这很有可能就是工程中pch文件的路径不正确  比如下面这个文件对一些pch中定义的宏报错   意思就是你使用了未定义的标识符

错误截图

解决办法:修改pch文件路径

1.按照截图提示1 找到设置pch文件路径的位置

2.修改文件路径  介绍一个linux命令$(SRCROOT)  利用他可以自动找到本机中此项目的根目录如下图所示 ,蓝色框选中的部分

3.既然利用$(SRCROOT)找到了根目录,那么接下来再拼接下pch文件的具体路径

再次编译就ok
上一篇下一篇

猜你喜欢

热点阅读