我编译了armv7静态库(lib * .a),我将编译iPad Air应用程序(arm64)。 我收到链接器警告,然后是链接器错误:
$ lipo -info /Users/user/Documents/dev/src/iOS_Projects/iProject/libMyLib.a
input file /Users/user/Documents/dev/src/iOS_Projects/iProject/libMyLib.a is not a fat file
Non-fat file: /Users/user/Documents/dev/src/iOS_Projects/iProject/libMyLib.a is architecture: armv7
Ld: warning: ignoring file /Users/user/Documents/dev/src/iOS_Projects/iProject/libMyLib.a, file was built for archive which is not the architecture being linked (arm64): /Users/user/Documents/dev/src/iOS_Projects/iProject/libMyLib.a ignoring file
为arm64重新编译静态库是不可取的(也可能是不可能的)。我该如何使用它们?
答案 0 :(得分:4)
有困难。
您只能在异常边界处切换AArch32状态和AArch64状态,因此,例如64位内核/ 32位用户空间是可能的,在单个进程中不可能同时使用它们。因为它是完全不同的指令集/寄存器布局/异常模型/等。 ARM / Thumb的风格没有32/64位互通(基本上只是相同指令的不同编码)。
一般情况下(我不熟悉iOS细节,但我认为它支持“传统”AArch32进程,就像Linux一样):
我认为iOS不支持IPC,而在这种情况下排除了第二种选择。