【问题标题】:Eclipse CDT can resolve macros and functions, but not structures or enums (Code browsing only)Eclipse CDT 可以解析宏和函数,但不能解析结构或枚举(仅限代码浏览)
【发布时间】:2013-11-18 15:40:44
【问题描述】:

我正在处理一个大型 C 项目(多个 makefile、修改过的第三方代码等),我想使用 Eclipse 作为 GDB 的图形前端并用于浏览/编辑代码。

现在我有一个问题,Eclipse 可以解析代码中的宏和函数,但不能解析数据结构或枚举。请注意,我只关心浏览/编辑代码。我将在 Eclipse 之外编译该项目。我还应该提到 Eclipse 从标准 C 库中解析任何东西都没有问题。我看到这是一个常见的问题,但这不是问题。

到目前为止,我已经完成了以下工作:

  • 整个代码库被加载到 Eclipse 中。
  • 我可以从 Eclipse 启动最终应用程序并在控制台中与之交互。
  • 索引器已启用,它设置为索引构建中未包含的源文件、未使用的标头,并且不跳过任何内容。我已经运行了几次索引器。我还尝试关闭/重新打开项目并重新启动 Eclipse。
  • 我将包含项目头文件的目录添加到 Properties->Paths and Symbols->Includes。我在 Project Explorer 的“Includes”下看到了这个目录。

如果我正在浏览源文件,我可以右键单击并选择“打开声明”来查看宏定义和函数定义,即使这些定义在其他文件中也是如此。这不适用于数据结构或枚举。 Eclipse 报告“StructureX”类型无法解析?

我需要做什么才能让 Eclipse 解析数据结构?

更新

我刚刚查看了 parser.log 文件。对于 Eclipse 无法解析的结构和枚举成员,我看到“尝试使用符号失败:”,但我看不出原因。

【问题讨论】:

  • 我只想提一下,我现在能够让 Eclipse 作为应用程序的 GDB 的前端工作。已经用它解决了一个棘手的问题。

标签: c eclipse eclipse-cdt


【解决方案1】:

奇怪的是,我找到了答案,因为默认配色方案让我很困扰。当我切换到更柔和的黑色背景时,我注意到 Eclipse 认为所有 #ifdef DEFINE_NAME_X 宏都未定义。

索引器无法找到的枚举和宏位于这些语句中。

打开属性->C/C++ 常规->路径和符号->符号并定义一些关键宏后,索引器就能找到丢失的符号。

【讨论】:

  • (我知道这是一篇旧帖子,但是,)所以,在原始配色方案中,背景与突出显示(不可编译)文本的颜色相同?
猜你喜欢
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 2011-12-19
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多