【问题标题】:Find if the code under a macro is getting compiled查找宏下的代码是否正在编译
【发布时间】:2013-10-30 06:00:55
【问题描述】:

我有用于一系列嵌入式设备的大量代码库。每次我们对一种产品进行修复时,我们都会合并其他产品的更改。有时,某些设备的代码在 Macro 的 .. 下,类似于

#if DEVICE1
   Do_This();
#elif DEVICE2
   Do_That();
#else
   Do_SomethingElse();
#endif

在上述情况下,我将不得不在相应的宏下合并代码。有时,它不是很直截了当。因此,在合并更改后。

在编译过程中,有没有办法查看新添加的代码行是否被编译?

【问题讨论】:

  • 首先可能是看看-E 标志是否能让您以足够简单的方式查看扩展代码。这意味着您必须运行两次,但自动化可能很容易。

标签: gcc compiler-construction g++ makefile


【解决方案1】:

cppgcc 使用的预处理器相同。使用相同的标志手动调用它,它将输出结果(已处理)代码。搜索感兴趣的区域以检查您想要的内容。

例如cpp foo.c | less.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2012-05-14
    • 1970-01-01
    • 2021-11-11
    • 2011-06-30
    相关资源
    最近更新 更多