从iOS上的ARM64应用程序调用ARM32(armv7)代码

时间:2015-04-02 06:15:53

标签: ios armv7 arm64

我有一个应用程序链接到32位armv7静态库。不幸的是我没有库的源代码,我无法为ARM64重新编译它。由于这个只有二进制文件库,我的整个应用程序无法移动到ARM64。我想知道是否有人能想到在iOS上的ARM64应用程序内运行/调用32位代码的方式?

我们在OSX上遇到了同样的问题,我们通过在应用资源中添加额外的二进制文件来解决这个问题。额外的二进制文件是FAT二进制文件,其中静态库链接到32位版本的二进制文件,64位版本是无操作符(它没有做任何事情)。每当我们需要32位功能时,我们使用以下命令行从我们的64位母版应用程序中启动32位进程:

 arch -i386 binarypath arguments

上述命令告诉OSX以32位模式专门启动二进制文件。这就是我们如何在OSX上解决这个问题。任何人都可以想到在iOS上做类似事情的聪明方法吗?也许使用扩展程序..?

编辑:只是为了说清楚:我知道没有办法将32位ARM库链接到64位构建。我对二进制翻译也不感兴趣。我想知道的是,是否有办法打包我的iOS应用程序(可能通过使用扩展),我可以调用32位代码,并可以在iOS上作为一个单独的进程运行?

0 个答案:

没有答案