由于公司的項(xiàng)目需要跨平臺(tái)編譯,所以免不了入了混編的坑,現(xiàn)歸納如下,希望可以給踩坑的后人留下一點(diǎn)福利吧。
1、蘋(píng)果的Objective-C編譯器允許用戶(hù)在同一個(gè)源文件里自由地混合使用C++和Objective-C,混編后的語(yǔ)言叫Objective-C++。有了它,你就可以在Objective-C應(yīng)用程序中使用已有的C++類(lèi)庫(kù)。Xcode需要源文件以".mm"為擴(kuò)展名,這樣才能啟動(dòng)編譯器的Objective-C++擴(kuò)展。
2、在.mm文件對(duì)應(yīng)的.h文件中,引用c++的類(lèi)或者頭文件,就會(huì)報(bào)找不到string.h等C++類(lèi)庫(kù)之類(lèi)的錯(cuò)誤:
需要在包含關(guān)于c++部分的頭尾寫(xiě)上#ifdef __cplusplus,#endif,告訴編譯器這部分是用C++預(yù)編譯的。
3、枚舉類(lèi)型錯(cuò)誤的問(wèn)題:

枚舉類(lèi)型累加錯(cuò)誤
文件改成.mm之后,枚舉類(lèi)型的累加就會(huì)報(bào)類(lèi)型不匹配的錯(cuò)誤。

枚舉類(lèi)型累加錯(cuò)誤解決方法
這時(shí),我們只需要用static_cast < type-id > ( expression ),進(jìn)行類(lèi)型的轉(zhuǎn)換。
4、持續(xù)更新中。。。。