【问题标题】:How to find where a macro is defined in a project?如何找到在项目中定义宏的位置?
【发布时间】:2015-07-07 14:08:42
【问题描述】:

我有一个项目有几十个源模块和几十个头文件,有些是嵌套的。使用 ARM 的 Eclipse for DS-5 时,我从索引器收到错误指示,但编译器却没有。

IDE 抱怨静态库的源模块之一中的 FALSE 宏未定义。但是,它确实编译正常。

在同一个代码库(另一个静态库)上的第二个项目中没有这样的问题。

在整个工作区中搜索此宏的多个标题中有多个定义。如何追踪代码中生效的具体定义是哪一个?

注意 - 我发现 this similar question 关于 MSVS 和一个很好的技巧作为答案,但是在 Eclipse 中是否有直接的方法来实现这一点?

【问题讨论】:

  • 出了什么问题:find -name '*.h' -exec grep -h define.*FALSE {} \; :)
  • @BrianMcFarland - 这是 Eclipse 吗?这个 Windows 兼容吗?
  • @BrianMcFarland - 另外,这是否找到适用于特定参考的特定定义?我不这么认为。
  • 不,不,不。这是一个笑话,因此:),虽然我可以看到它是如何在{} \;中丢失的
  • @BrianMcFarland - :) 点...至于 Cygwin - 您是否计算了时间基准中下载/安装/学习/使用的时间;-)。无论如何 - 正如我在之前的评论中提到的,当嵌套标题中有多个定义时,使用grep 来计算具体定义可能会成为一个严肃的 PITA。

标签: c++ c macros eclipse-cdt ds-5


【解决方案1】:

好的,我找到了答案:

  1. 选择宏
  2. 右键单击并选择“探索宏扩展”(或 Ctrl+=
  3. 在打开的对话窗口中,点击底部的“Open Declaration”按钮

现在在编辑器中打开声明位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    相关资源
    最近更新 更多