Llvm ld:体系结构arm64的记录无效

Llvm ld:体系结构arm64的记录无效,llvm,ld,tvos,Llvm,Ld,Tvos,我正在为tvOS构建一个框架,并使用一个模糊处理软件。使用-emit llvm编译所有源代码,模糊器处理llvm IR代码,然后使用clang++将其编译成.o,然后调用ld生成最终二进制文件,并且ld失败,出现以下错误: ld: Invalid record for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Program xcrun re

我正在为tvOS构建一个框架,并使用一个模糊处理软件。使用
-emit llvm
编译所有源代码,模糊器处理llvm IR代码,然后使用
clang++
将其编译成
.o
,然后调用
ld
生成最终二进制文件,并且
ld
失败,出现以下错误:

ld: Invalid record for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Program xcrun returned error code 1
可在Xcode 11.2.1和11.3的不同机器上复制


如何解决此错误?我已将
-v
添加到链接器标志中,但它没有向输出添加任何提示。

再次回答我自己的问题,以防其他人遇到此问题

在我的例子中,问题是由我链接到的一个库引起的,它是为tvOS的arm64e构建的。这是一个包含arm64、arm64e和x86_64片的胖二进制文件。由于某种原因,
ld
不喜欢它(尽管我只是为arm64构建框架),并且抛出了这个错误。卸下arm64e切片修复了该问题


另一个有趣的细节是调试构建与该库的链接良好。

再次回答我自己的问题,以防万一其他人会碰到这个问题

在我的例子中,问题是由我链接到的一个库引起的,它是为tvOS的arm64e构建的。这是一个包含arm64、arm64e和x86_64片的胖二进制文件。由于某种原因,
ld
不喜欢它(尽管我只是为arm64构建框架),并且抛出了这个错误。卸下arm64e切片修复了该问题

另一个有趣的细节是调试构建与该库链接良好