问题
最近的项目开发中用到了c文件,c中引用了oc的foundation库,正常我们改下文件的类型就可以编译通过了,参考链接
但是我们使用的是pod创建的lib库,不能去手动改工程,而且C文件一般是由别人提供的,我们也不能改文件类型。只能交给podSpec 文件了,在生成workspace时直接修改project中的参数。
过程
使用方案三,直接修改对应pod的build setting 编译发现问题解决了。
于是在podSpec中添加
# s.pod_target_xcconfig = { 'GCC_INPUT_FILETYPE' => 'Objective-C++'}
执行 pod install
之后
虽然显示的是Objectvie-C++
了,但是编译依然不能通过,从图片上也可以看出来,好像是两个东西。
解决
手动修改成Objectvie-C++
后,从workspace中全局搜索GCC_INPUT_FILETYPE
搜索到如下结果:
于是修改为如下
s.pod_target_xcconfig = { 'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp'}
编译通过了。
亲测 使用下面的设置也可以
s.xcconfig = {
'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp'
}
但是不能两个同时设置。
提示:
我们可以使用下面的方法,查看buildsetting对应的key值