Xcode 7.1中架构armv7的未定义符号

时间:2015-12-15 13:16:28

标签: xcode mobile unity3d vuforia armv7

我正在使用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%。

我不知道如何解决这个问题,你们中的任何人都可以解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

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

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

然后编辑此文件: MMTPlugin /编译/的XCode / theorawrapper.xcodeproj / project.pbxproj 第134和144行的替换

/Users/dan/Documents/MobileMovieTexture/

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

/Users/MyUser/Code/git/MobileMovieTexture

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

生成的文件将放在:

MMTUnity/Assets/Plugins/iOS/libtheorawrapper.a

您应该将该文件复制到unity插件文件夹:

Assets/Plugins/iOS/libtheorawrapper.a

答案 1 :(得分:0)

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

作为旁注,该文件从之前的大约300KB发布到最新版本的1.8MB,这对我来说似乎有点不对。

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

答案 2 :(得分:0)

我今天遇到了这个问题,而且似乎有更多的人也会这样做。

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

即可

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