XCode 7:如何单独组装armv7,arm64和x86 .S文件?

时间:2015-09-29 10:32:14

标签: ios xcode assembly arm64

我正在将一个模拟器项目移植到iOS,其中包含.S文件中的一些ARM和X86机器代码。如何配置我的项目,以便仅为真实的iOS硬件编译ARM代码,并且仅为模拟器编译X86代码。

此外,我的ARM代码是ARMv7,而不是ARM64。 据我所知,我应该能够将一个“.machine armv7”指令放入一个ARM .S文件中,以使汇编程序使用较旧的指令集(在arm64上运行正常,对吧?)。但是汇编程序会出错:“错误:未知指令.machine armv7”。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用C预处理器,默认情况下Xcode在汇编文件上运行:

file_x86_64.s:
#if defined __x86_64__
// x86_64 assembly code
#endif

file_armv7.s:
#if defined __arm__
// arm assembly code
#endif

等。你是正确的armv7代码将在arm64设备上运行,但它无法链接到arm64可执行文件,所以你需要有一个C实现或arm64程序集才能构建arm64