【问题标题】:IOS 64-bit with static library build error带有静态库构建错误的 IOS 64 位
【发布时间】:2014-12-19 10:30:30
【问题描述】:

我正在尝试使我现有的项目支持 Apple 要求的 64 位设备。 本项目使用 Three20 作为静态库。

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

但现在我的项目仍然出现构建错误“symbol(s) not found for architecture 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)

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

【问题讨论】:

  • 它说在你的输出中找不到 i386 的符号,也许你需要为模拟器重新编译它?
  • @Roger 您还需要一个具有 i386-64 架构切片的 Fat 库。

标签: ios 64-bit static-libraries arm64


【解决方案1】:

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

我建议为 i386 平台构建 lib 的第二个版本,用于仅支持 64 位的模拟器构建。这样一来,您的生产库就可以保持更小,仅包含 arm 二进制文件。

【讨论】:

    【解决方案2】:

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

    为我解决的问题是将 Build Settings 中的 Architectures 属性更改为 $(ARCHS_STANDARD_INCLUDING_64_BIT)。我清理了,重新启动了 Xcode,它工作了。

    祝你好运。

    【讨论】:

    • 使用 Xcode 6.1,我用架构 x86_64 重建了库,然后成功地重建了主应用程序而没有错误
    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 2010-12-09
    相关资源
    最近更新 更多