iOS開(kāi)發(fā),導(dǎo)入c文件引發(fā)的Could not build module 'UIKit'問(wèn)題

導(dǎo)致出現(xiàn)異常的原因是是因?yàn)楣こ讨刑砑恿四?第三方開(kāi)源庫(kù))

一般情況下出現(xiàn)“Unknown type name”是頭文件互相引用出現(xiàn)的,這里可以排除,由于源碼使用是c\c++與oc混編,

考慮新的XCode編譯文件類型導(dǎo)致的,嘗試了幾種方案,下面三種可以解決問(wèn)題。

解決方案一:

選擇所有.c文件,將屬性的 identity and type 改為Objective-C Source。

解決方案二:

選擇所有.c文件,將.c修改為.m


解決方案三:

將Compile Sources As 改為 Objective-C++

方案三由于修改所有文件的編譯類型,所有可能會(huì)導(dǎo)致其他包括c、c++代碼的提示錯(cuò)誤,不過(guò)都是些的提示異常,按提示修改即可。

另外,添加第三方庫(kù)一般步驟分三步:

1)拖入庫(kù)文件夾,copy一份加入自己的項(xiàng)目

????????2)添加庫(kù)所需要的框架或者動(dòng)態(tài)鏈接庫(kù)

????????3)ARC下修改編譯屬性 -fno-objc-arc

但是今天加入zipArchive ,按步驟加入,增加libz動(dòng)態(tài)庫(kù),修改-fno-objc-arc一下報(bào)了23個(gè)錯(cuò)誤(汗too many errors emitted, stopping now),都是expected identifier or '(' ,unknown type name 'NSString',could not build module 'Foundation',could not build module 'UIKit'。

?通過(guò)百度,stackOverflow上找到解決方法:

???在所在項(xiàng)目pch文件中,把自己所#import的頭文件做如下操作?

?#ifdef __OBJC__

????#import?

?#endif

分析了一下,zipArchive庫(kù)是C OC C++文件混編,pch里面自加的頭文件是全局性的,當(dāng)在C文件import時(shí)其實(shí)是沒(méi)有意義的,也就是問(wèn)題出處,所以要ObjC區(qū)分開(kāi)編譯,這樣總是就解決了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容