IOS 64位与静态库生成错误

时间:2014-12-19 10:30:31

标签: ios 64-bit static-libraries arm64

我正在努力使我现有的项目支持Apple所要求的64位设备。 该项目使用Three20作为静态库。

我已经用arm64架构重建了Three320库。

但是现在我的项目仍然存在构建错误" 符号未找到架构x86_64"如下:

(null): "_OBJC_CLASS_$_TTDefaultStyleSheet", referenced from:

(null): _OBJC_CLASS_$_TitleStyleSheet in SettingsViewController.o

(null): "_OBJC_CLASS_$_TTStyleSheet", referenced from:

(null): Objc-class-ref in DailyInvestmentViewController.o

(null): "_OBJC_CLASS_$_TTStyledText", referenced from:

(null): Objc-class-ref in DailyInvestmentViewController.o

(null): "_OBJC_CLASS_$_TTStyledTextLabel", referenced from:

(null): Objc-class-ref in DailyInvestmentCustomCell.o

(null): Objc-class-ref in DailyInvestmentViewController.o

(null): "_OBJC_CLASS_$_TTTextStyle", referenced from:

(null): Objc-class-ref in SettingsViewController.o

(null): "_OBJC_METACLASS_$_TTDefaultStyleSheet", referenced from:

(null): _OBJC_METACLASS_$_TitleStyleSheet in SettingsViewController.o

(null): Symbol(s) not found for architecture i386

(null): Linker command failed with exit code 1 (use -v to see invocation)

有人能告诉我如何解决它。 非常感谢。 对不起我的英语不好。

2 个答案:

答案 0 :(得分:0)

正如您所说,您已经重建了arm的lib,而不是i386。 但是你尝试构建64位模拟器使用,即i386_64。你仍然没有支持该平台的lib。

我建议为i386平台构建lib的第二个版本,用于仅支持64位的模拟器版本。这样,只有arm二进制文件,你的生产库就会变小。

答案 1 :(得分:0)

我今天早上遇到了这个问题,我自己的静态库已经为i386和x86_64构建了。

为我修复的是将Build Settings中的Architectures属性更改为$(ARCHS_STANDARD_INCLUDING_64_BIT)。我清理了,重新启动了Xcode,它运行起来了。

祝你好运。