我在 .s 文件中有几行汇编器 Arm 代码。只是我需要调用的一些例程。在为设备构建时它工作正常,但是当我切换到 iPhone Simulator 时,我收到“没有这样的指令”错误。我尝试根据我所知道的有条件地编译 .s 文件的部分内容:
#if !TARGET_IPHONE_SIMULATOR
但是汇编器无法识别这些预处理器指令(当然),而且我记得或发现的汇编器条件编译技术都不起作用,所以我现在正在绞尽脑汁地思考如何避免编译该汇编器构建模拟器时的代码。我在 Xcode 中也没有看到允许我根据目标平台编译或不编译文件的项目选项。
已解决:
我所缺少的是汇编程序文件中正确的#import。我没有想到添加它,因为 Xcode 语法以绿色突出显示了任何预处理器指令(注释),这让我认为这些命令未被识别,而实际上它们工作得很好。
这有效:
#import "TargetConditionals.h"
#if !TARGET_IPHONE_SIMULATOR
... asm code here ...
#endif
最佳答案
您可以使用预处理器宏来完成此操作。它们在 TargetConditionals.h TARGET_IPHONE_SIMULATOR
中定义,应该在那里! (但是您确实需要 #include 它。)
关于iphone - iPhone 的汇编 (.s) 代码中的条件编译 - 如何进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709850/