Xcode链接错误:文件太小,不适用于架构armv7

时间:2011-12-07 09:46:58

标签: xcode cocoa-touch linker-errors

我收到这个奇怪的链接器错误:

  

ld:在/Users/.../test project / iSMP.framework / iSMP中,文件太小而不适用于架构armv7

     

collect2:ld返回1退出状态命令   /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2   退出代码1失败

Xcode vers:4.0.2

如果我为模拟器编译,我得到

  

...文件太小,不适用于i386体系结构

谷歌没有任何帮助..

我已经尝试过:

  • 重新添加框架
  • 清除搜索路径
  • 将框架移动到其他目录并重新添加。

更新:lipo -info libiSMP-2.1.a

的输出
  

胖文件中的体系结构:libiSMP-2.1.a是:armv6 armv7 i386

所以,它不是来自架构不匹配;

提前致谢!

1 个答案:

答案 0 :(得分:6)

我收到了该框架支持团队的解决方案(谢谢大家):

  

符号链接在移动时会变为平面文件   OS / X到Windows。 iSMP框架具有以下结构:   iSMP.framework / iSMP(指向libiSMP-2.1.a的符号链接)/   标题/ libiSMP-2.1.a

     

要解决此问题,您可以在Mac上打开终端应用程序   转到iSMP.framework目录。键入'ls -l iSMP'时   命令你会注意到iSMP文件不再是'l'   属性。然后,您应该通过删除来重新创建符号链接   iSMP文件。然后键入'ln -s libiSMP.2.1.a iSMP'。这将创建   链接。

     

您现在可以重建项目。

     

解决问题的另一个解决方案是删除iSMP文件和   将libiSMP-xx.a重命名为iSMP。

TL / DR:当符号链接从OS / X移动到Windows时,它们会变成平面文件。您需要续订。