“文件太小,不适用于架构arm64”,“clang:错误:链接器命令失败,退出代码为1”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“文件太小,不适用于架构arm64”,“clang:错误:链接器命令失败,退出代码为1”相关的知识,希望对你有一定的参考价值。

我刚刚尝试在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(尽管它是通用的)?

答案

中断生成后会发生此错误。产品/清洁通常会修复它。

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

另一答案

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

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

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

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

Mac如何安装clang,求最新方法

在Windows使用clang编译器

clang 命令

clang 编译不过去这个是啥原因

clang 插件编译错误:未定义符号 llvm::Registry<clang::PluginASTAction, llvm::RegistryTraits<clang::PluginAS

深入研究Clang(十四) clang-tidy的使用