我正在使用 Core-Plot 库创建一个项目。 我用 static way 添加库. 如何在 32 + 64 位设备上运行我的应用程序?
如果我运行 lipo libCorePlot-CocoaTouch.a -info
控制台响应:
Architectures in the fat file: libCorePlot-CocoaTouch.a are: armv7 armv7s arm64
但是这个库只适用于 32 位设备/模拟器和 64 位模拟器给我这个错误:
ld:警告:忽略文件 PATH/libCorePlot-CocoaTouch.a,文件 PATH/libCorePlot-CocoaTouch.a 中缺少所需的架构 i386(3 个切片)
架构 i386 的 undefined symbol :
“_CPTDecimalFromCGFloat”,引用自:
-[HomeViewController configureSecondPlots] 在 HomeViewController.o
-[HomeViewController configureSecondAxes] 在 HomeViewController.o
“_CPTDecimalFromInteger”,引用自:
-[HomeViewController configureSecondAxes] 在 HomeViewController.o
“_OBJC_CLASS_$_CPTAxisLabel”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTColor”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTFill”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTGraphHostingView”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTMutableLineStyle”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTMutableTextStyle”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTPieChart”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTPlotSymbol”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTScatterPlot”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTTextLayer”,引用自:
HomeViewController.o 中的 objc-class-ref
“_OBJC_CLASS_$_CPTXYGraph”,引用自:
HomeViewController.o 中的 objc-class-ref
ld:未找到架构 i386 的符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我该如何解决这个问题?
谢谢
最佳答案
合并两个库并制作一个通用二进制文件
lipo -create <simulator_lib>.a <device_lib>.a -output lib.a
关于ios - 在 iOS lib armv7 和 64 位版本中需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157540/