iOS开发,导入c文件引起的Could not build module 'UIKit'问题

致使出现异常的缘由是是由于工程中添加了某(第三方开源库)html

通常状况下出现“Unknown type name”是头文件互相引用出现的,这里能够排除,因为源码使用是c\c++与oc混编,c++

考虑新的XCode编译文件类型致使的,尝试了几种方案,下面三种能够解决问题。框架

解决方案一:ide

选择全部.c文件,将属性的 identity and type 改成Objective-C Source。ui

解决方案二:htm

选择全部.c文件,将.c修改成.mblog

解决方案三:ip

将Compile Sources As 改成 Objective-C++get

 
方案三因为修改全部文件的编译类型,全部可能会致使其余包括c、c++代码的提示 错误,不过都是些的提示异常,按提示修改便可。
 

另外,添加第三方库通常步骤分三步:源码

1)拖入库文件夹,copy一份加入本身的项目

        2)添加库所须要的框架或者动态连接库

        3)ARC下修改编译属性 -fno-objc-arc

可是今天加入zipArchive ,按步骤加入,增长libz动态库,修改-fno-objc-arc一下报了23个错误(汗too many errors emitted, stopping now),都是expected identifier or '(' ,unknown type name 'NSString',could not build module 'Foundation',could not build module 'UIKit'。

 经过百度,stackOverflow上找到解决方法:

   在所在项目pch文件中,把本身所#import的头文件作以下操做 

 #ifdef __OBJC__

    #import 

 #endif

分析了一下,zipArchive库是C OC C++文件混编,pch里面自加的头文件是全局性的,当在C文件import时实际上是没有意义的,也就是问题出处,因此要ObjC区分开编译,这样老是就解决了。


今天在添加Redis的时候报错,参考这个修改不报错了

相关文章
相关标签/搜索