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

cod*_*rut 5 xcode cocoa-touch linker-errors

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

ld:在/Users/.../test项目/ 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

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

提前致谢!

cod*_*rut 6

我收到了这个框架的支持团队的解决方案(谢谢你们):

当符号链接从OS/X移动到Windows时,它们将变为平面文件.iSMP框架具有以下结构:iSMP.framework/iSMP(指向libiSMP-2.1.a的符号链接)/ Headers/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时,它们会变成平面文件.你需要更新它们.