导入第三方库unknown type name 'NSS
2017-05-09 本文已影响108人
益达哥哥
在公司负责弹幕库,最近在发现core animation有些问题,想尝试下facebook 出的pop动画引擎。pop是一个objectviewc++和cpp的库,为了简单,我直接用了pop文件夹里面的文件,没有集成coacoapods。在demo工程中,我把弹幕sdk和pop文件夹放在了danmudemo工程的同一级目录,运行ok。如图
![](https://img.haomeiwen.com/i1400697/42484e57e3e95636.png)
ok,现在我把pop文件夹集成到自己的弹幕sdk中,这时出现了一堆unknown type name 'nsstring'的错误。
![](https://img.haomeiwen.com/i1400697/d6fb755888a57c40.png)
很头疼,虽然将Compile Sources As 改为 Objective-C++这种方式很可行,但是会造成我的sdk里面其他报错需解决。找了很久,发现一个解决办法:http://stackoverflow.com/questions/19723392/adding-c-file-causes-pch-error
应该是pch文件预编译的问题,也就是说,把foundation以及uikit等oc的东西作为头编译进c/c++代码了。为了验证这个问题,我把facebook在github上的工程也添加了pch,并#import<Foundation/Foundation.h>,结果报错。尝试
#ifdef __OBJC__
#import<Foundation/Foundation.h>
#endif
可以run起来。然后我修改了自己的pch预编译方式。如图
![](https://img.haomeiwen.com/i1400697/c34f5934bad1d132.png)