我在.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