【发布时间】:2014-09-18 17:54:57
【问题描述】:
我的项目已经导入了几个第三方框架,其中很多都需要在Building Settings -> Linking -> Other linker flags 选项卡中进行“-ObjC”优化。
目前,我正在尝试添加另一个静态框架(OSMap SDK),优化导致“Undefined symbols for architecture 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 文件。
有没有办法在使用静态框架的同时仍将优化功能保留在其他链接器标志下?
编辑:
- libbz.dylib 有助于消除第一个错误。
- 目前其他四个错误仍然存在。我的猜测是它们应该在 route-me 的库中,并且不知何故丢失了。而如果我导入route-me的库,虽然这样可以消除未定义符号的错误,但会产生更多重复符号的新错误。
【问题讨论】:
-
为什么不呢?如果您的配置有问题,请添加更多详细信息...
-
@Macmade 已添加。 :)
标签: objective-c xcode compiler-construction linker