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