使用GCC编译时忽略SDCC编译器语言扩展

使用GCC编译时忽略SDCC编译器语言扩展,c,gcc,sdcc,C,Gcc,Sdcc,我试图编译一些c代码,这些代码最初是为SDCC编写的,使用GCC在主机上运行一些单元测试。 SDCC有一些语言扩展,如\uuuuxdata或\uuupdata(用于内存控制),这些扩展应该保留在SDCC中,但在使用GCC编译时应该忽略。我强烈希望不要修改测试中的模块。有没有办法做到这一点 我已经发现,如果我在测试模块中添加类似于#define uu-xdata的内容,它是可以工作的。因此,也许有可能有一个类似“全球定义”的东西?我对GCC几乎没有经验。也许有编译器标志可以帮助我?有两个编译器标志

我试图编译一些c代码,这些代码最初是为SDCC编写的,使用GCC在主机上运行一些单元测试。 SDCC有一些语言扩展,如
\uuuuxdata
\uuupdata
(用于内存控制),这些扩展应该保留在SDCC中,但在使用GCC编译时应该忽略。我强烈希望不要修改测试中的模块。有没有办法做到这一点


我已经发现,如果我在测试模块中添加类似于
#define uu-xdata
的内容,它是可以工作的。因此,也许有可能有一个类似“全球定义”的东西?我对GCC几乎没有经验。也许有编译器标志可以帮助我?

有两个编译器标志,您可以使用:

  • -include
    允许您提供一个额外包含的c文件,并执行该文件中的定义
  • 通过命令行选项定义宏