Eclipse没有找到std c ++库

时间:2014-04-08 21:14:27

标签: c++ eclipse eclipse-cdt

我在c:\ mingw中安装了mingw的Windows8机器 Eclipse确实成功编译了程序,但它认为行包含编译时很好的错误。 Eclipse没有找到库本身。

当我第一次使用CDT组件安装在eclipse中构建项目时,它会在每个#include和使用对象的每一行上显示错误。

示例:

#include <iostream>
using namespace std;

int main() {
  cout << "hello\n";
}

以上代码显示了包含,使用和cout&lt;&lt;线。 我可以点击以下消除错误: project-&gt; properties C ++ / General Preprocessor Include 然后在提供者选项卡上,我可以检查&#34; CDT Build输出解析器&#34;并修复下面第一个答案所描述的错误,我正在检查。但这仅适用于该项目。我每次都要这样做。我怎样才能让eclipse简单地接受标准C ++我每次构建一个新项目而不重新配置每个项目?

我已经能够通过进入项目设置并添加目录来阻止包含错误:

C:/ bin中/ mingw的/ LIB / GCC /包括 ...

使用对象在行上留下错误。

#include <iostream>
#include <string>
#include <regex>
using namespace std;

int main() {
    string s = "this is a test.";
    regex e("est");
    smatch m;

带有正则表达式的行仍显示错误:&#34;无法解析类型正则表达式&#34; 即使代码编译并且正则表达式包含被识别。

此外,在运行带有Mingw的Windows 8.1的另一台机器上,eclipse不会调试。是否有一些关于如何将Eclipse CDT连接到库的文档?

1 个答案:

答案 0 :(得分:5)

虽然您显然已经在Eclipse中使用gcc成功编译代码,但Eclipse有自己的内置C ++解析器,您需要单独让它知道您使用的是C ++ 11。

-std=c++11选项添加到CDT GCC Builtin Compiler Settings下的Project propierties -> C/C++ General -> Preprocessor Include Paths,编译器规格应与此类似:

${COMMAND} -E -P -v -dD ${INPUTS} -std=c++11 

更新。请阅读 Setting Up Include Paths and Macros for C/C++ Indexer ,了解CDT如何自动发现支持的工具链的包含路径和预处理器符号(也称为扫描程序发现)适用于您。

要点是CDT使用Language Settings Providers来查找包含路径和预处理器符号。可以在项目属性页面Language Settings Providers

上配置"Preprocessor Include Paths, Macros, etc."

一旦进行了适当的设置,您就可以将它们设置为模板工作区,只需为新项目复制模板工作区,或者设置一个仅设置相关设置的脚本。另请参阅:Setting preferences for all Eclipse workspaces