【问题标题】:Apple Mach-O Linker (Id) Error (wechat)Apple Mach-O 链接器 (Id) 错误(微信)
【发布时间】:2016-12-06 00:55:39
【问题描述】:

我在我的 xcode 中添加了一个微信登录。但是,这些错误有效。 我不知道如何解决这个错误。请帮帮我。

Apple Mach-O Linker (Id) Error
"__wechatstore",referenced from:
_Wechat__wechatstore_m13_992 in Bulk_Assembly-CSharp_1.o
_Wechat_wechatstore_m13_995 in Bulk_Assembly-CSharp_1.o
(maybe you meant: _Wechat__wechatstore_m13_992)
Symbol(s) not found for architecture arm64
Linker command failed with exit code 1 (use -v to see invocation)
Activity Log Complete

【问题讨论】:

  • 库是为 x86 还是 ARM 编译的?该应用似乎是为 ARM64 设计的。
  • 你的意思是x86或者ARM dragon不应该在库中?
  • 您似乎为不同的 CPU 架构编译了库,可能是 x86。你需要为 ARM64 编译它。
  • 如果是,我应该找到并删除x86库吗?

标签: ios objective-c xcode8 wechat


【解决方案1】:

该消息意味着在提供给链接器的任何arm64 二进制文件中都找不到符号__wechatstore(可能是指向数据结构的指针)。所以有几件事可能会出错:

  • 带有此符号的库可能未包含在编译中。 (在 Xcode 中构建失败时,转到导航器中的“报告”选项卡,单击失败的构建,然后检查失败的“链接...”任务

  • 可能包含库,但未针对 arm64 进行编译。现在想来,我觉得这是最有可能的情况。 arm64 support 是 Apple 支持 iPad Pro 的新要求。我愿意打赌该库可能只包含 armv7。您可以通过在库上运行 file 命令来找出包含哪些架构。

一个可能的临时解决方案是停止为 arm64 编译,并尝试只编译 armv7:为此,转到项目 > 构建设置 > 架构 > 架构并将 $(ARCHS_STANDARD) $(ARCHS_STANDARD) 更改为 armv7。 (nb:idk,但如果没有适用于应用商店的适当架构,我不会尝试提交二进制文件)

【讨论】:

  • 谢谢。但是,这是函数调用的问题。 Unity 调用了一个不在 xcode 中的函数。
猜你喜欢
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 2011-12-06
  • 2014-04-06
相关资源
最近更新 更多