Xcode:进行单对象预链接

问题描述

我正在使用Xcode通过单对象预链接将所有包含位代码的对象文件(*.o)和静态库(*.a)的集合预链接到单个静态库中。

这样做,生成的预链接文件不包含位码。

Xcode发出的预链接命令和选项如下:

ld -r -arch arm64 -bitcode_bundle -bitcode_verify -syslibroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.6.sdk 
a.o 
b.o 
...
x.a
y.a
-o libABC-arm64-master.o

bitcode_bundle选项的文档指示“它需要所有目标文件,静态库和用户框架/ dylib包含位代码”。我已经使用otool来验证所有组成文件都包含位码。

ld命令不会引发或记录错误,即使我直接从命令行(与Xcode分开)进行测试也是如此。

我很困惑。任何帮助或建议,我们将不胜感激。

更新: 在进一步的测试中,我可以创建一个仅包含任何单个.o文件的预链接文件,而最终的预链接文件将包含位码。但是,如果包含其中两个.o文件中的任何两个,每个文件都包含位代码,则导致预链接的文件中不包含位代码。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)