Eclipse无法解析用宏声明的字段 我最近开始深入研究开源项目的代码,它主要是用C++编写的。我正在Ubuntu 12.10中使用Eclipse3.8

Eclipse无法解析用宏声明的字段 我最近开始深入研究开源项目的代码,它主要是用C++编写的。我正在Ubuntu 12.10中使用Eclipse3.8,c++,eclipse,eclipse-cdt,C++,Eclipse,Eclipse Cdt,问题: Eclipses错误地将字段标记为未解析,因为有一个特别复杂的约定用于将字段声明从头文件中分离出来 某个班级 fields.h 现在在cpp文件中,如果我想执行类似于instanceOfSomeClass.Field1的操作,Eclipse将用“Field'Field1'无法解决”将其标记为错误 问题是:有没有办法让Eclipse正确处理这种情况 无法正确处理不在全局范围内的#include语句是Eclipse索引器中的一个问题 你可以做些什么: 修改代码以避免这种模式。当文本标题包含

问题: Eclipses错误地将字段标记为未解析,因为有一个特别复杂的约定用于将字段声明从头文件中分离出来

某个班级

fields.h

现在在cpp文件中,如果我想执行类似于
instanceOfSomeClass.Field1的操作,Eclipse将用“Field'Field1'无法解决”将其标记为错误


问题是:有没有办法让Eclipse正确处理这种情况

无法正确处理不在全局范围内的
#include
语句是Eclipse索引器中的一个问题

你可以做些什么:

  • 修改代码以避免这种模式。当文本标题包含模型被C++模块取代时,它将是无效的。
  • 为Eclipse CDT提供此缺陷的修复
  • 使用可以解析此模式的其他IDE。(我不知道有哪一个是我脑海中的,但我也没有花太多时间去寻找。)

试试这个,我认为这不是同一个问题。我猜我的问题是分析器没有扩展包含的文件和宏,因此它看不到字段声明,因此认为它们不存在。不过,我确实提出了一些关于这个话题的建议,但这些建议都是无效的
class SomeClass
{
public:
    #define MACRO_CLASS_PARAM(Name) SomeType m_##Name;
    #include "fields.h"
    #undef MACRO_CLASS_PARAM
};
MACRO_CLASS_PARAM(Field1)
MACRO_CLASS_PARAM(Field2)
...