解決華為eSpace SDK那些讓人頭疼編譯錯誤

集成華為的eSpace SDK 時,編譯華為提供的demo程序,SDK里面有三個文件編譯報錯:
DBContact.h
CircleInviteDataModel.h
CircleInviteDataModel.mm

1.其中DBContact.h中有個static方法報錯,搜索了一下,發(fā)現(xiàn)沒有其他地方引用此方法,既然這樣,那就直接注釋掉這個方法
2.至于CircleInviteDataModel.mm這個文件,里面更是一堆莫名其妙的代碼,簡單看了一下,里面大多是非ARC時期的代碼,還有些變量名、類型名沒有聲明,華為工程師建議直接刪除這個文件,這樣一來就簡單干脆,直接刪除這個文件。既然.mm文件刪了,.h文件也沒有存在的意義了,所以把CircleInviteDataModel.h一起刪除。
如此,解決編譯錯誤,但是接下來,出現(xiàn)了167個鏈接錯誤,如下所示:

ld: warning: directory not found for option '-L/Users/wanghu/Desktop/eSpaceSDK/UC_API_IT_Demo/Depend/eSDK/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/wanghu/Desktop/eSpaceSDK/UC_API_IT_Demo/Depend/eSDK/Debug-iphonesimulator'
ld: warning: directory not found for option '-L/Users/l00206777/Documents/workspace/V200R003C00_20150210S(SDK)/eSpaceIOSSDK/Build/Debug-iphoneos'
ld: warning: directory not found for option '-L/Users/l00206777/Documents/workspace/eSpaceSDKlib_iphone/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/l00206777/Documents/workspace/eSpaceSDKlib_iphoneTR6/eSpaceSDKlib_iphone/Release-iphoneos'
ld: warning: ignoring file /Users/wanghu/Desktop/eSpaceSDK/UC_API_IT_Demo/eSpaceSDKlib_iphone/Release-iphoneos/libeSpaceIOSSDK.a, file was built for archive which is not the architecture being linked (i386): /Users/wanghu/Desktop/eSpaceSDK/UC_API_IT_Demo/eSpaceSDKlib_iphone/Release-iphoneos/libeSpaceIOSSDK.a
Undefined symbols for architecture i386:
  "_AMR_EXTENTION", referenced from:
14444590898694.jpg

把鏈接器的錯誤信息翻來覆去的看,無非原因是相關(guān)的庫沒導(dǎo)入,或者指令體系結(jié)構(gòu)不正確,但是按照要求改了多次依然無效,最后無意間搜索了一下ld:warning:ignoring file這行警告信息,根據(jù)提示,修改了編譯選項:Build Settings->Build Options->Enable BitCode->NO 設(shè)置以后,又根據(jù)網(wǎng)上搜索到的答案:

可能原因二:正如這個錯誤提示所指出的那樣,缺少了i386架構(gòu)的東西。這很可能是由于項目中包含的靜態(tài)庫是被編譯用于真機(jī)測試的,大家都知道蘋果手機(jī)cpu是arm架構(gòu),而mac筆記本(當(dāng)然也包括運(yùn)行于其上的iphone-simulator)是intel架構(gòu)。所以當(dāng)這個靜態(tài)庫被編譯用于device的時候,在目標(biāo)為simulator下的編譯是會報錯的。 
解決方法一:
直接真機(jī)調(diào)試。 
解決方法二:
重新為simulator編譯靜態(tài)庫,然后有一個更高端的解決辦法,就是將兩種架構(gòu)的靜態(tài)庫合并:

果斷連上真機(jī),問題成功解決??磥斫鉀Q有些問題真是靠經(jīng)驗,光看錯誤信息表面看不出什么來。感謝那位提供答案的網(wǎng)友的熱心分享。

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

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

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