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的時候報錯,參考這個修改不報錯了

相關文章
相關標籤/搜索