编译报错:
std::vector<_baidu_vi::vi_map::CBGLProgram*, std::allocator<_baidu_vi::vi_map::CBGLProgram*> >::res
解决:
第一、Build Settings-->Apple LLVM 8.1 - Language - C++ --> C++ Standard Library,设置为:libstdc++(GNU C++ standard library)
然后Clean工程,然后重新Build,看是否可以成功。
第二、如果上述设置仍旧不能解决你的问题,你还可以尝试Build Phases --> Link Binary With Libraries里面增加库:libstdc++.dylib
第三、可以把app中的任何一个.m文件扩展名改为.mm,即可解决链接错误
其道理就是只要app中存在.mm文件则app会自动添加对c++库的引用
第四、Build Phases -> Link Binary With Libraries,
将libstdc++.dylib换成libstdc++.6.0.9.dylib就可以了。
另外XCODE也有一个问题:我在app中使用NSClassFromString 进行反射时,被反射类在另外一个静态库中,并且该app没有包含该库对应类的头文件,反射后始终返回nil,必须在Build setting的Other link flag中加入-all_load选项才能反射成功
注:搜索整理第一种方法亲测解决问题