“文件对于架构 arm64 来说太小”,“clang:错误:链接器命令失败,退出代码 1”

Posted

技术标签:

【中文标题】“文件对于架构 arm64 来说太小”,“clang:错误:链接器命令失败,退出代码 1”【英文标题】:"File too small for architecture arm64", "clang: error: linker command failed with exit code 1 " 【发布时间】:2016-01-11 17:40:29 【问题描述】:

我刚刚尝试在我的 iPad 上运行一个应用程序并收到此错误:

ld: file too small (length=0) file '(PathToMyProjectBuild)/Objects-normal/arm64/Palette.o' for architecture arm64
clang: error: linker command failed with exit code 1 

我的应用程序在 iPhone 上运行良好,并且在我的 iPad 上运行良好,然后突然间我得到了这个。它是什么意思,我该如何解决这个问题,因为我正在开发这个应用程序,主要是在我的 iPad 上使用它,而不是 iPhone(虽然它是通用的)?

【问题讨论】:

【参考方案1】:

此错误发生在您中断构建之后。 Product/Clean 通常会修复它。

我相信编译器正试图将二进制数据保存在由中断的构建部分分配(而不是清理)的文件/空间中,但新的二进制数据大于前一个可能是零字节的数据文件。

【讨论】:

【参考方案2】:

有时清理项目并不是最好的选择,因为从头开始重新编译所有内容需要很长时间。大多数情况下,只有一个(在极少数情况下为 2 或 3 个)文件会产生错误。

要解决此问题,只需从终端中删除该确切文件并通过在 rm 命令之后粘贴完整路径来重新构建。在您的情况下,它将是:

$ rm (PathToMyProjectBuild)/Objects-normal/arm64/Palette.o

【讨论】:

这是一个很好的答案,尽管它很容易出现人为错误。你应该得到更多的选票,这是我的。

以上是关于“文件对于架构 arm64 来说太小”,“clang:错误:链接器命令失败,退出代码 1”的主要内容,如果未能解决你的问题,请参考以下文章

什么时候实例化类模板?

如何使用 Clang 编译 C++?

合服日志 2016-1-27

clang-format 展开空初始化程序

在 mongoose 中查找文档并获取特定部分

即使安装了模块,Python Module not found 错误