【问题标题】:Static .a library not building gives the Undefined symbols for architecture x86_64?未构建的静态 .a 库为架构 x86_64 提供了未定义的符号?
【发布时间】:2015-02-05 00:13:07
【问题描述】:

我知道有很多问题,但我之所以问是因为我无法找到答案。

我有我的 xxx.a 静态库。我已经在我的项目中添加了,但是当我运行它时会抛出错误

 Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_Reachability", referenced from:
      objc-class-ref in CheckConnection.o
  "_OBJC_CLASS_$_MobileSDK", referenced from:
      objc-class-ref in Utility.o

我有用户 lipo -info (mylibraypath) 推荐

它返回我的库是:armv7 arm64

我的有效架构:armv7 arm64

架构是:$(ARCHS_STANDARD)

我无法在模拟器中运行应用程序,请帮助

【问题讨论】:

  • 您需要构建支持x86_64的静态库才能在模拟器中运行。
  • 你能给我链接如何构建吗?

标签: ios objective-c xcode


【解决方案1】:

您还需要为模拟器构建它。所以选择你的库和模拟器并构建。找到产品(.a 文件)并使用lipo 检查它,您应该会看到它是x64_64。然后找到为armv7arm64 构建的另一个.a 文件,并通过

创建一个胖库
lipo -create lib1.a lib2.a -output libcombined.a

其中lib1.ax64_64 库,lib2.aarmv7 arm64 库。

【讨论】:

  • 好的,所以我需要在模拟器上运行时使用 diff .a 文件,该模拟器使用模拟器和设备的 diff 构建。
猜你喜欢
  • 2015-06-18
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
相关资源
最近更新 更多