如何为GCC添加/指定预定义宏?

如何为GCC添加/指定预定义宏?,c,gcc,macros,C,Gcc,Macros,重要事项:-D不适用于此处 是否可以以某种动态方式声明每次编译中出现的宏(很像预定义的宏)(这意味着我懒得重新编译gcc)?还是我必须重新编译我的gcc?如果我必须重新编译,我如何指定我的预定义宏? 你可以考虑提供一些(或者改进你的)。 您可以修补GCC源代码的补丁 然后,您可以使用GCC插件定义其他预定义宏 但我确信这是一个非常糟糕的主意;我建议将一些-D标志显式传递给编译器;你的问题很难闻。你需要激发你的问题 相反,您可以组织您的脚本并适当地添加一些gccshell脚本,添加-DMACRO选

重要事项:
-D
不适用于此处


是否可以以某种动态方式声明每次编译中出现的宏(很像预定义的宏)(这意味着我懒得重新编译gcc)?还是我必须重新编译我的gcc?如果我必须重新编译,我如何指定我的预定义宏?

你可以考虑提供一些(或者改进你的)。 您可以修补GCC源代码的补丁

然后,您可以使用GCC插件定义其他预定义宏

但我确信这是一个非常糟糕的主意;我建议将一些
-D
标志显式传递给编译器;你的问题很难闻。你需要激发你的问题

相反,您可以组织您的脚本并适当地添加一些
gcc
shell脚本,添加
-DMACRO
选项并显式地调用它,例如
/usr/bin/gcc

在Linux上,您可以

  • 使用别名:

    别名gcc=“gcc-DMACRO1-DMACRO2”
  • 将旧的
    /usr/bin/gcc
    复制到
    /usr/bin/gcc.original
    。制作自己的shell脚本并将其命名为
    /usr/bin/gcc
    ,其中包含

    exec/usr/bin/gcc.original-DMACRO1-DMACRO2“$@”
    

@Pyjong:请编辑您的问题以改进并激发它。除非您能解释为什么需要这个,否则您不可能得到满足您需求的好答案。你能解释一下为什么使用
-D
不能达到你的要求吗?比如说,你的目标是一个新的平台吗?(或现有平台的新变体)您是否试图构建一些不想更改的不合作源?您只是想了解GCC是如何初始化自己的吗?所有这些都是你感兴趣的正当理由,但它们的答案完全不同。如果你的目标是一个新平台,你需要(创建和)编辑它的规范文件。我建议你的问题表明这是你试图实现的,以避免投稿人浪费时间回答不适合这个更具体问题。没有其他动机,我投票结束这个问题,因为不清楚。“这肯定是有问题的。”皮容,请不要指责别人不诚实,尤其是当我们试图帮助改进你的问题,使它对更多的读者有用,而不仅仅是你自己。我现在离开这个问题。没有必要将
/usr/bin/gcc
移动到
/usr/bin/gcc.original
。只需添加一个适当的
gcc
shell脚本(并有一个有序的
$PATH
)是的,我想我要试试这个。谢谢。我肯定你试这个是错的。只需适当地添加您的
gcc
脚本,并使用它创建一个良好的
$PATH
。你能通过适当的动机来改进你的问题吗(所以添加一些段落来解释你的动机)。好的,不。仔细看,我同意你的观点,你的建议是错误的。我想要的答案在gcc\config中。谢谢你的努力。