Eclipse CDT:未解决包含 stl 标头

Posted

技术标签:

【中文标题】Eclipse CDT:未解决包含 stl 标头【英文标题】:Eclipse CDT: Unresolved inclusion of stl header 【发布时间】:2011-08-24 01:37:52 【问题描述】:

我正在尝试使用 Eclipse 编辑源代码,在 C++ Builder 下编译,但遇到了 Unresolved inclusion 问题。

例如,代码如下:

#include <vector>

在 Eclipse IDE 中出现 Unresolved inclusion: &lt;vector&gt; 错误。 C++ Builder 确实没有vector 文件,而是有编译器使用的vector.h

如果我写的话,Eclipse IDE 不会出错

#include <vector.h>

当 Eclipse 看到 #include &lt;vector&gt; 时,我如何告诉它使用 vector.h

【问题讨论】:

您拥有哪个版本的 C++ Builder,型号 1997 或 2010 还是介于两者之间? 据此页面wikipedia.org/wiki/C++Builder#Version_history第4版于1999年发布!这可能是你问题的很大一部分。您可以轻松获得免费且更新的 g++ 或 Microsoft Visual C++ Express 版本。 这能回答你的问题吗? "string could not resolved" error in Eclipse for C++ (Eclipse can't resolve standard library) 【参考方案1】:

这让我避免了 Eclipse “未解决的包含”错误。

就我而言,我必须在我的计算机(Mac)上找到 C++ 向量头的位置:

find /usr/local -name vector -print

我在文件夹“/usr/include/c++/4.2.1”中找到了正确的包含位置。然后我像这样设置我的项目 Eclipse 设置:

Project->Properties->C/C++ General->Paths and Symbols->GNU C++->(Add)->"/usr/include/c++/4.2.1"

我没有使用 C++ Builder,但我的解决方案可能会解决您的部分问题。

【讨论】:

【参考方案2】:

您也可以尝试使用“CDT GCC 内置编译器设置”。转到项目属性 > C/C++ 常规 > 预处理器包含路径 > 提供程序选项卡 如果不是,请检查“CDT GCC 内置编译器设置”。

对于“字符串”类型,没有其他解决方案(使用包含路径等)对我有用,但这个解决方案修复了它。

【讨论】:

【参考方案3】:

在 Windows 上,使用 Eclipse CDT Oxygen,这里描述的解决方案都不适合我(包括“提供者”-“CDT GCC 内置编译器设置”)。 对我有用的是:

安装 Cygwin,特别是以下软件包(也许并非所有软件包都严格需要): libgcc1 cygwin32-gcc-core, cygwin32-gcc-g++ gcc-g++ mingw64-x86_64-gcc-core, mingw64-x86_64-gcc-g++ 在项目属性中: 转到“C/C++ Build”-“Tool Chain Editor”并选择“Cygwin GCC”作为“Current toolchain”: 转到“C/C++ General”-“Preprocessor Include Paths, Macors etc.”,在“Providers”选项卡中,选择: “CDT 用户设置条目”(我需要它们用于其他包含,例如我手动引用的 Google 测试); “CDT GCC 内置编译器设置 Cygwin”。

【讨论】:

【参考方案4】:

memory 和 memory.h 引用的来源不同。

一个用于c,另一个用于c++

您的项目设置中是否包含正确的源代码?

【讨论】:

好的,有条件#if !defined(__USING_STD_NAMES__) 当包含为 时显然为真,如果包含为 则为假。我如何将所有这些东西告诉 Eclipse? 为了更好地了解您的需求,让我问:为什么您需要告诉 eclipse ?如果你真的需要 memory.h 然后使用 #include 但如果你想使用 c++ 头 然后确保 C++ bluider 包含文件的路径在 Properties(of your project )>C/c++ general > path and symbols>include > your compiler 然后你可以添加正确的资源 memory 更改为 vector 以表明我的观点。 gnu c++中没有vector.h,但是C++Builder有这个文件,看到#include &lt;vector&gt;就使用 hm...如果您在 #include 上按 F3,文件本身是否包含 #include ?至少这就是我的 gcc 标头所做的。如果您的 C++ 构建器包含在项目的包含路径中,那么它应该解析名称并找到它。

以上是关于Eclipse CDT:未解决包含 stl 标头的主要内容,如果未能解决你的问题,请参考以下文章

启动失败。未找到二进制文件。 Eclipse Helios 上的 CDT

Qt 设计器插件未在 Eclipse CDT 中加载

如何在 Eclipse CDT 中为 C++ STL 对象启用 gdb 漂亮打印?

Eclipse CDT 索引器不包括来自同一项目的标头

Eclipse CDT 自动完成功能不起作用

在 Eclipse 上导入的 Makefile 项目:未列出的源和未解决的包含项