ld:截断的胖文件

时间:2016-08-26 09:21:01

标签: ios compiler-errors

我在尝试运行使用NinevehGL框架的XCODE应用程序时发现了这些错误:

ld: truncated fat file. Slice from 1478656 to 2279616 is past end of file with length 2270604 file './NinevehGL.framework/NinevehGL' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我真的不知道这个问题是什么以及如何解决这样的错误我没有找到任何处理这类问题的文档。

5 个答案:

答案 0 :(得分:2)

尝试在项目中进行以下更改: -

  • 在链接阶段包含所有必要的框架
  • 从其他链接标记中删除-all_load
  • 清理构建文件夹并从头开始重新编译。

This could很可能是权限问题,损坏的iOS SDK安装或损坏的Xcode安装。我会删除/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulatorXXX.sdk,然后进入Xcode>偏好>下载并重新安装iOS SDK。然后再次尝试清理和构建项目。 如果您仍有问题,我会考虑重新安装Xcode。

还要查看how to fix xcode路径问题。

答案 1 :(得分:2)

我的一个项目出现了类似的错误:

ld: truncated fat file. Slice from 1067056 to 2127456 is past end of file with length 770048 file '/Users/jenkins-slave-pepper/workspace/iosbuild/App/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID' for architecture armv7

解决方案是清除pod缓存并重新下载所有内容。

rm -rf ~/Library/Caches/CocoaPods
rm -rf `pwd`/Pods/
pod update

答案 2 :(得分:1)

我有类似的错误:

ld: truncated fat file. Slice from *** to *** is past end of file with length *** file '***' for architecture armv7

我的解决方案是放弃我的一个子模块中的更改。

编辑:

今天又发生了。发生这种情况之后,我需要强制重启我的电脑。可能xCode或SourceTree会更改子模块。

答案 3 :(得分:1)

您是否在自己的 git 存储库中查看了这些库?如果是,请检查 .gitattributes ,因为您可能需要将 *。a (和/或其他)添加到二进制文件列表中。

在我们的项目中,我们维护了Wiki中原始文件的“存档”,直到我们意识到git“破坏”了我们的二进制文件。

文件摘要......

#
## These files are binary and should be left untouched
#

# (binary is a macro for -text -diff)
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.mov binary
*.mp4 binary
*.mp3 binary
*.flv binary

答案 4 :(得分:0)

我有一个类似的错误: ld:截断的胖文件。从1802240到2416332的切片在文件末尾,长度为1067176,文件“ ...”用于体系结构arm64 铛:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我要解决的问题是从我的FTP重新下载框架。下载时文件可能不完整。而且我发现一些用于FTP的工具可能会获得不同大小的文件。