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: <vector>
错误。 C++ Builder 确实没有vector
文件,而是有编译器使用的vector.h
。
如果我写的话,Eclipse IDE 不会出错
#include <vector.h>
当 Eclipse 看到 #include <vector>
时,我如何告诉它使用 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__)
当包含为 memory
更改为 vector
以表明我的观点。 gnu c++中没有vector.h,但是C++Builder有这个文件,看到#include <vector>
就使用
hm...如果您在 #include 以上是关于Eclipse CDT:未解决包含 stl 标头的主要内容,如果未能解决你的问题,请参考以下文章
启动失败。未找到二进制文件。 Eclipse Helios 上的 CDT