我在.s文件中有几行汇编程序代码。只需要拨打几个例程。它在为设备构建时工作正常,但是当我切换到iPhone模拟器时,我得到“没有这样的指令”错误。我试图编译.s文件的部分有条件什么我知道:针对iPhone的汇编程序(.s)代码的条件编译 - 如何?
#if !TARGET_IPHONE_SIMULATOR
但汇编不承认这些预处理指令(当然),没有的条件编译技术汇编,我能记得或找到工作,所以我现在抓我的脑袋,如何避免编译模拟器时编译该汇编代码。我也没有看到Xcode中的项目选项,它允许我编译文件或不依赖于目标平台。
解决:
所有我缺少的是在所有的汇编文件正确的#import。我没有考虑添加它,因为Xcode语法突出显示了绿色(注释)中的任何预处理器指令,这使我认为这些命令在实际上它们工作得很好时不会被识别。
这工作:
#import "TargetConditionals.h"
#if !TARGET_IPHONE_SIMULATOR
... asm code here ...
#endif
我相信XCode调用的工具对.s和.c文件使用相同的预处理器(如果您没有更改默认值);你确定你试过这个时不会犯错吗? – 2009-11-10 17:55:52