iOS 百度地图 有关OC和C++混编造成其它类错误的问题(Compile Sources As Objective-C++)

       项目导入百度地图SDK在配置环境出现错了,在这记录一下

       相信有的朋友在使用百度地图api的时候,添加lib库也会遇到类似的问题, 百度提供两种方法:(静态库中采用Objective-C++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即在Xcode的Project-> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为"Objective-C++")

百度地图SDK 是用C/C++编写的,所以导入这个SDK库到新项目中,程序需要有以下设置才能不会报错

如果设置  Compile Sources As 为Objective-C++

Compile Sources As 为Objective-C++

.a静态库文件都能编译通过,但是问题是,如果项目中引用到了其它的第三方库文件,可能会产生错误,如下图所示:

其他第三方报错

解决方法就是:

1,在Xcode的Project-> Edit Active Target -> Build Setting 中找到 Compile Sources As,切换回According to File Type,这样能保证其它的第三方库、以及之后可能添加的不同类型源码文件都没有问题.

2,使用百度地图提供的第二种, 保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm)

这样就OK了

如果你只是用百度地图没有使用其他.a静态库, 那就没有这个问题,其他使用是用C/C++编写的编写的SDK 应该也会有同样的问题.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容