为 arm64 macOS 重新定义符号

问题描述

我有两个静态第三方库,它们具有相同的导出符号,以及我要在共享库中使用的所有符号。 objcopy 可以重新定义库中的符号。从 brew 安装 binutils 包后,从静态库中提取所有 *.o 文件并为每个 *.o 文件调用 objcopy

objcopy --redefine-sym

打包对象

ar r *.o

ranlib mylib.a

但是当我尝试编译动态库链接器时显示警告:

mylib.a,building for iOS-arm64 but attempting to link with file built for unkNown-unsupported file format ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x23 0x31 0x2F 0x32 0x30 0x20 0x20 0x20 

如果使用 objcopy 和 --output-target mach-o-arm64,链接器警告转换为

mylib.a,building for iOS-arm64 but attempting to link with file built for iOS-arm64

它适用于 x86_64 库,但适用于 arm64..

解决方法

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

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

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