【发布时间】:2021-11-27 21:03:42
【问题描述】:
你能给我一个编写自定义 gcc 预处理器的例子吗?
我的目标是用适当的 CRC32 计算值替换 SID("foo") 类似的宏。对于任何其他宏,我想使用标准 cpp 预处理器。
使用-no-integrated-cpp -B 选项似乎可以实现此目标,但我找不到任何简单的使用示例。
【问题讨论】:
-
这不是在回答您的问题,但您是否考虑过编写一个支持脚本来获取您的模板文件(例如
example.c.tmpl),计算 CRC 并替换为输出文件(例如example.c)作为您制作过程的一部分? -
在我的情况下这很不方便,因为我没有特殊的模板,这些 SID 宏可以在源代码中的任何位置。当然,我可以添加一个自定义 Make 目标,它使用一个简单的脚本更改 SID 宏来处理所有 *.cpp 源,然后将损坏的源传递给 gcc....但我认为使用自定义预处理器可能更优雅。跨度>
-
您是否尝试过标准方式:#undef SID #define SID ?
-
我认为您应该更仔细地重新阅读最初的帖子。这个问题不能用标准的预处理器来解决。
标签: gcc c-preprocessor