我正在开发一个项目,我需要在源代码中给出一些智能注释,将代码注入C(或C ++)文件。注入的代码由外部文件提供。有没有人知道任何这样的尝试,可以指出我的例子 - 当然我需要用#line保留原始行号。我的想法是用首先执行此操作的脚本替换cpp,然后调用系统cpp。 任何建议将不胜感激
由于 丹尼
答案 0 :(得分:0)
提供修改后的cpp
外部程序通常不会起作用,至少在最近的GCC中,预处理是内部到编译器(因此是cc1
的一部分或cc1plus
)。因此,大多数GCC编译中不再涉及任何cpp
程序(但libcpp
是GCC的内部库)。
如果主要使用GCC,我建议您自己注册代码#pragma
(不是评论!)。您可以为此添加自己的GCC插件或编写自己的MELT扩展名(因为GCC插件可以添加编译指示和内置函数,但目前无法影响预处理)。
如Ira Baxter所述,您可以简单地进行一些奇怪的宏调用,并在单独的文件中定义这些宏。
我并不确切地猜测你需要什么样的代码注入。
或者,您可以使用自己的生成器生成C或C ++代码(可以发出#line
指令)并将其提供给gcc