关于BaiduMapSDK遇到的问题的一点总结

来源:互联网 发布:淘宝 评价数 销量 编辑:程序博客网 时间:2024/05/14 00:30

在使用百度地图的SDK进行ios的开发时,一开始照他的官方文档进行了配置,结果出错为

(null): "_OBJC_CLASS_$_BMKMapManager", referenced from:

(null): Objc-class-ref in AppDelegate.o

(null): Symbol(s) not found for architecture i386

(null): Linker command failed with exit code 1 (use -v to see invocation)


然后无上网查询了各种资料,也看到了很多解决的办法,其实前两个错误:

(null): "_OBJC_CLASS_$_BMKMapManager", referenced from:

(null): Objc-class-ref in AppDelegate.o

是由于在百度的SDK文件李有两个libbaidumapapi.a的静态库文件,分别在两个子文件夹中,是百度用于适配不同模拟器和真机两个版本的,但是xcode不能识别同名的静态库版本,结果就造成了找不到那个文件的问题.后来我使用官方文档中的第二种方法,用lipo –create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a –output libbaidumapapi.a命令将两个版本的静态库合成为一个通用的版本,然后将存放两个版本静态库的子文件夹删除掉只留下一个通用版本的.a文件就可以了.


至于后两个错误:

(null): Symbol(s) not found for architecture i386

(null): Linker command failed with exit code 1 (use -v to see invocation)

一开始上网上搜,有的说是修改Xcode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths下的路径的的,也有的说是在Build Phases -> Compile Sources下添加库中的.m文件的,还有说是修改Build settings ->Linking->Other Linker Flags中添加-all_load的,结果都不行,最后是将Other Linker Flags下的所有选项都删除掉了结果就变异通过的.具体是什么原理我也不是很清楚,希望有大神能够指点我.还有就是这个错误只是我用来解决我的工程中出现的问题的,并不适用与所有的类似错误,所以仅供参考~!!!
0 0
原创粉丝点击