Xcode 链接错误:对于架构 armv7 文件太小

发布于 2024-12-20 02:50:00 字数 614 浏览 2 评论 0原文

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

ld:在 /Users/.../test project/iSMP.framework/iSMP 中,对于架构 armv7 来说文件太小

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

Xcode 版本:4.0.2

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

...文件对于 i386 架构来说太小

谷歌根本没有帮助..

我已经尝试过:

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

更新:lipo -info libiSMP-2.1.a 的输出

fat文件:libiSMP-2.1.a中的架构为:armv6 armv7 i386

所以,这不是架构不匹配;

提前致谢!

I get this strange linker error:

ld: in /Users/.../test project/iSMP.framework/iSMP, file too small for architecture armv7

collect2: ld returned 1 exit status Command
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2
failed with exit code 1

Xcode vers: 4.0.2

If I compile for simulator, i get

... file too small for architecture i386

google doesn't help at all..

I already tried to:

  • re-add the framework
  • clear search path
  • move framework to a different directory and re-add.

Update: output from lipo -info libiSMP-2.1.a

Architectures in the fat file: libiSMP-2.1.a are: armv6 armv7 i386

so, it's not from architecture mismatch;

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一枫情书 2024-12-27 02:50:00

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

符号链接从移动位置移至平面文件时会变成平面文件
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 时会转换为平面文件。您需要续订它们。

I've received the solution from the support team of this framework (thanks guys):

Symbolic links are turned into flat files when they are moved from
OS/X to Windows. The iSMP framework has the following structure:
iSMP.framework / iSMP (symbolic link pointing to libiSMP-2.1.a) /
Headers / libiSMP-2.1.a

To fix the issue, you might open the terminal application on Mac and
move to the iSMP.framework directory. When you type 'ls -l iSMP'
command you will notice that the iSMP file has no longer the 'l'
attribute. You should then recreate the symbolic link by deleting the
iSMP file. type then 'ln -s libiSMP.2.1.a iSMP' .This will create the
link.

You may now rebuild the project.

Another solution to fix the problem is to delete the iSMP file and
rename libiSMP-xx.a to iSMP.

TL/DR: Symbolic links are turned into flat files when they are moved from OS/X to Windows. You need to renew them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文