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