2012-09-18 46 views
2

我正在使用Eclipse Juno CDT作为我正在使用的类,但它告诉我它无法解析在包含文件中找到的类型,而这些不是我写的标题。Eclipse没有解析类型

我写的程序编译和运行完全按照它应该如果我通过命令行通过g ++运行它。问题在于我无法在Eclipse中进行调试,因为它甚至不能识别字符串等基本类型。此外,没有代码完成。它发现包含文件很好,我可以打开它们并查看内容,但它仍然不会解析类型。

我已经看到很多有类似问题的人的建议,但所有结果都没有找到包含文件,这不是我的问题。有什么建议么?

回答

0

也许这些类型是在一个命名空间中,而且你没有限定它们(并且没有使用using声明)。

+0

不可以。使用命名空间标准,这是字符串的命名空间。 – user1678889

0

您可能已经为头本身包含了正确的目录。在我的系统上是:/usr/include/c++/4.4.6/

但是,您可能没有包含宏_GLIBCXX_BEGIN_NAMESPACE定义的目录。如果没有这个宏定义,eclipse不知道stl类型在std名字空间中。在我的系统上,这个宏定义在主C++ dir下面松动。尝试添加以下路径到您的包含列表:

/usr/include/c++/4.4.6/x86_64-redhat-linux 
/usr/include/c++/4.4.6/x86_64-redhat-linux/bits 

如果你不在红帽寻找类似的东西。您可以转至/ usr/include并运行以下grep以查找具有必需宏定义的标头:

grep -R -P "define\\s*_GLIBCXX_BEGIN_NAMESPACE\(" . 
相关问题