在公司負(fù)責(zé)彈幕庫庐完,最近在發(fā)現(xiàn)core animation有些問題篷朵,想嘗試下facebook 出的pop動畫引擎。pop是一個objectviewc++和cpp的庫魂毁,為了簡單,我直接用了pop文件夾里面的文件出嘹,沒有集成coacoapods席楚。在demo工程中,我把彈幕sdk和pop文件夾放在了danmudemo工程的同一級目錄疚漆,運(yùn)行ok酣胀。如圖
ok,現(xiàn)在我把pop文件夾集成到自己的彈幕sdk中娶聘,這時出現(xiàn)了一堆unknown type name 'nsstring'的錯誤闻镶。
很頭疼,雖然將Compile Sources As 改為 Objective-C++這種方式很可行丸升,但是會造成我的sdk里面其他報錯需解決铆农。找了很久,發(fā)現(xiàn)一個解決辦法:http://stackoverflow.com/questions/19723392/adding-c-file-causes-pch-error
應(yīng)該是pch文件預(yù)編譯的問題狡耻,也就是說墩剖,把foundation以及uikit等oc的東西作為頭編譯進(jìn)c/c++代碼了。為了驗(yàn)證這個問題夷狰,我把facebook在github上的工程也添加了pch岭皂,并#import<Foundation/Foundation.h>,結(jié)果報錯沼头。嘗試
#ifdef __OBJC__
#import<Foundation/Foundation.h>
#endif
可以run起來爷绘。然后我修改了自己的pch預(yù)編譯方式书劝。如圖