如何通过程序集预处理程序传递--defsym?

时间:2012-10-09 17:36:40

标签: gcc assembly arm

这是关于一些使用通用makefile的arm汇编代码,但对于需要预处理的文件(xxx.S)和不需要预处理的文件(xxx.s)的行为不同。在我的makefile中,我有这个:

ASFLAGS += --defsym BACKDOOR_ADDR=0xC0004000

对于未经过预处理的所有旧版程序集文件(xxx.s),它似乎可以正常工作。现在我有一个需要预处理的(xxx.S),并且我收到以下错误:

arm-none-eabi-gcc: error: unrecognized option '--defsym'

我试过这个:

ASFLAGS += -Wa,--defsym,BACKDOOR_ADDR=0xC0004000

它适用于xxx.S文件,但不适用于xxx.s文件。我从汇编程序中获取xxx.s文件的以下错误:

  

汇编程序消息:   致命错误:无效的列表选项`,'

有没有办法做到这两种情况都适用?

1 个答案:

答案 0 :(得分:0)

调整你的makefile以便使用gcc汇编“legacy”xxx.s文件,然后第二个选项(带-Wa)应该可以工作。