【问题标题】:Undefined symbols for architecture armv7 in Xcode 7.1Xcode 7.1 中架构 armv7 的未定义符号
【发布时间】:2015-12-15 13:16:27
【问题描述】:

我正在使用 Vuforia 和一个名为 Mobile Movie Textures 的 Unity 插件制作游戏。当我尝试构建我的 Xcode 项目时,一切都很顺利,直到它开始链接。我从同一个库中得到一堆错误,说它不能识别符号。

    Undefined symbols for architecture armv7:
  "_oc_idct8x8_arm", referenced from:
      _oc_state_frag_recon_arm in libtheorawrapper.a(armstate.o)
      _oc_state_accel_init_arm in libtheorawrapper.a(armstate.o)
  "_oc_idct8x8_1_arm", referenced from:
      _oc_state_frag_recon_arm in libtheorawrapper.a(armstate.o)
  "_oc_frag_recon_intra_arm", referenced from:
      _oc_state_frag_recon_arm in libtheorawrapper.a(armstate.o)
      _oc_state_accel_init_arm in libtheorawrapper.a(armstate.o)
  "_oc_pack_read1_arm", referenced from:
      _th_decode_packetin in libtheorawrapper.a(decode.o)
      _oc_huff_tree_unpack in libtheorawrapper.a(huffdec.o)
      _oc_quant_params_unpack in libtheorawrapper.a(dequant.o)
  "_oc_frag_recon_inter2_arm", referenced from:
      _oc_state_frag_recon_arm in libtheorawrapper.a(armstate.o)
      _oc_state_accel_init_arm in libtheorawrapper.a(armstate.o)
  "_oc_frag_copy_list_arm", referenced from:
      _oc_state_accel_init_arm in libtheorawrapper.a(armstate.o)
  "_oc_frag_recon_inter_arm", referenced from:
      _oc_state_frag_recon_arm in libtheorawrapper.a(armstate.o)
      _oc_state_accel_init_arm in libtheorawrapper.a(armstate.o)
  "_oc_loop_filter_frag_rows_arm", referenced from:
      _oc_state_accel_init_arm in libtheorawrapper.a(armstate.o)
  "_oc_huff_token_decode_arm", referenced from:
      _th_decode_packetin in libtheorawrapper.a(decode.o)
      _oc_sb_run_unpack in libtheorawrapper.a(decode.o)
  "_oc_pack_read_arm", referenced from:
      _th_decode_packetin in libtheorawrapper.a(decode.o)
      _oc_sb_run_unpack in libtheorawrapper.a(decode.o)
      _th_decode_headerin in libtheorawrapper.a(decinfo.o)
      _oc_unpack_length in libtheorawrapper.a(decinfo.o)
      _oc_huff_tree_unpack in libtheorawrapper.a(huffdec.o)
      _oc_quant_params_unpack in libtheorawrapper.a(dequant.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我可以让带有 armv7 架构的设备不兼容,但它们占荷兰市场的 55%。

我不知道如何解决这个问题,你们有谁知道吗?

【问题讨论】:

  • 将构建活动架构设置为 NO
  • 感谢您的建议,但遗憾的是它不起作用。我仍然有同样的错误。
  • 更改统一构建设置中的设置。我不记得确切的名称,但可能您正在为“x64”构建应用程序,请将其设置为“通用”
  • 谢谢,但它已设置为通用。

标签: xcode mobile unity3d vuforia armv7


【解决方案1】:

当前版本插件中的库 libtheorawrapper.a 已损坏,并且不包含所有需要的符号。

如果你想使用插件,你必须重新编译库。 为此,您需要结帐this repository .

然后编辑这个文件: MMTPlugin/build/XCode/theorawrapper.xcodeproj/project.pbxproj 替换第 134 和 144 行

/Users/dan/Documents/MobileMovieTexture/

使用您克隆 repo 的路径(例如):

/Users/MyUser/Code/git/MobileMovieTexture

然后您可以使用 XCode 打开该项目并重新编译库。

生成的文件将放置在:

MMTUnity/Assets/Plugins/iOS/libtheorawrapper.a

您应该将该文件复制到您的统一插件文件夹:

Assets/Plugins/iOS/libtheorawrapper.a

【讨论】:

【解决方案2】:

今天早上我遇到了同样的问题,这是最新版本的 MMT 插件的问题:基本上,Assets/Plugins/iOS/libtheorawrapper.a 文件不包含 armv7 架构应包含的所有内容。我用以前版本的插件中的相同文件替换了它(幸运的是,我在另一个项目中使用了该文件),然后一切都重新构建和链接。

附带说明一下,该文件从之前的大约 300KB 变成了最新版本的 1.8MB,这对我来说似乎也有点错误。

我将通过电子邮件向开发人员发送有关这些问题的电子邮件,但也可以随意发送。

【讨论】:

  • 你能把那个库文件发给我吗?你会拯救我的皮肤
【解决方案3】:

我今天刚遇到这个问题,似乎更多人也遇到了这个问题。

我成功地修复了库文件,使其现在可以工作。只需将其替换为 Unity/plugins/ios 文件夹中的那个即可

这里有一个下载链接:https://www.dropbox.com/s/kp8u9ggzw6xxvit/libtheorawrapper.a?dl=0

【讨论】:

    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2011-09-19
    相关资源
    最近更新 更多