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

问题描述

我正在尝试编译一些最初使用GCC为SDCC编写的c代码,以在主机上运行某些单元测试。 SDCC有一些语言扩展,例如__xdata__pdata(用于内存控制),应保留用于SDCC,但在使用GCC编译时应忽略这些扩展。我强烈希望不要修改被测模块。有什么办法吗?

我已经弄清楚了,如果我在被测模块中添加#define __xdata之类的东西,它将起作用。因此,也许可能会有类似“全局定义”的内容?我对GCC的经验很少。也许有些编译器标志可以帮助我?

解决方法

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

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