我的项目已经导入了几个第三方框架,并且许多要求" -ObjC"建筑设置中的优化 - >链接 - >其他链接器标志选项卡。
目前,我正在尝试添加另一个静态框架(OSMap SDK),并且优化会导致架构i386"未定义的符号。错误。
Undefined symbols for architecture i386:
"_BZ2_bzBuffToBuffDecompress", referenced from:
-[OSTerrain getDataLoadedForEasting:northing:] in OSMap(OSTerrain.o)
"_OBJC_CLASS_$_RMMapTiledLayerView", referenced from:
objc-class-ref in OSMap(RMMapView.o)
"_OBJC_CLASS_$_RMMarker", referenced from:
objc-class-ref in OSMap(RMMapOverlayView.o)
"_OBJC_CLASS_$_RMOpenStreetMapSource", referenced from
objc-class-ref in OSMap(RMMapView.o)
"_OBJC_CLASS_$_RMQuadTree", referenced from:
objc-class-ref in OSMap(RMMapView.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我确信我添加了QuartzCore.framework和Git上指定的其他框架。 据我所知,框架中没有.m文件。
有没有办法使用静态框架,同时仍然将优化功能保留在其他链接器标志下?
修改
答案 0 :(得分:0)
搜索缺失的符号表示您需要链接libbzip2和来自github的名为“route-me”的内容。
如果你有这些,你可能没有正确的架构。你标记了你的问题iOS,但错误是关于i386构建的,也许你的目标是没有支持它的库的模拟器。