2014-01-16 25 views
4

我正在使用Core-Plot lib创建一个项目。 我用static way添加这个库。 如何在32位+ 64位设备上运行我的应用程序?在iOS库lib armv7和64位版本中需要帮助

,如果我跑lipo libCorePlot-CocoaTouch.a -info 控制台响应:

Architectures in the fat file: libCorePlot-CocoaTouch.a are: armv7 armv7s arm64

但这库只与32位设备的工作原理/模拟器64位模拟器给我这个错误:

ld: warning: ignoring file PATH/libCorePlot-CocoaTouch.a, missing required architecture i386 in file PATH/libCorePlot-CocoaTouch.a (3 slices) Undefined symbols for architecture i386: "_CPTDecimalFromCGFloat", referenced from: -[HomeViewController configureSecondPlots] in HomeViewController.o -[HomeViewController configureSecondAxes] in HomeViewController.o "_CPTDecimalFromInteger", referenced from: -[HomeViewController configureSecondAxes] in HomeViewController.o "_OBJC_CLASS_$_CPTAxisLabel", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTColor", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTFill", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTGraphHostingView", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTMutableLineStyle", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTMutableTextStyle", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTPieChart", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTPlotSymbol", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTScatterPlot", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTTextLayer", referenced from: objc-class-ref in HomeViewController.o "_OBJC_CLASS_$_CPTXYGraph", referenced from: objc-class-ref in HomeViewController.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

如何解决这个问题?

谢谢

+0

对于模拟器工作通用二进制应包含的i386(32位)和x86_64(64位)archs –

+0

我建立一个新的lib,我的控制台说: '脂libCorePlot-CocoaTouch64.a -info' '胖文件中的体系结构:libCorePlot-CocoaTouch64.a是:i386 x86_64',但它仅适用于64位模拟器 – Tenaciousd93

回答

3

结合这两个库,使通用二进制

lipo -create <simulator_lib>.a <device_lib>.a -output lib.a 
+1

它的工作原理! :) 谢谢。现在我有一个19 MB的库,首先是4,7mb。有没有办法让最轻的一个? – Tenaciousd93

1

打开核心情节的iOS项目(CorePlot-CocoaTouch.xcodeproj),更新架构的构建设置,包括64-位,并建立“通用图书馆”的目标。这将在build文件夹中创建一个名为“Release-universal”的文件夹,其中包含具有所有体系结构(设备和模拟器)的通用库以及所有头文件的副本。

+0

感谢您的回答,我会尽快尝试您的解决方案。谢谢:) – Tenaciousd93

+0

当我这样做时,我仍然得到像“未定义的符号架构armv7s:”_vDSP_minvD“,引用自:”你有一个想法,为什么? –

+0

@yucelbayram你需要添加Accelerate框架 – Alex