【问题标题】:How to set Eclipse CDT to index / resolve std files如何设置 Eclipse CDT 以索引/解析标准文件
【发布时间】:2017-04-19 21:24:57
【问题描述】:

我有以下代码:

#include <iostream>
using namespace std;

int main()
{
    vector<int> v; //Symbol vector could not be resolved

    return 0;
}

IDE 抱怨“向量”:符号向量无法解析

如果我右键单击“向量”关键字 -> 源 -> 添加包含,什么也不会发生。

如果我手动添加#include &lt;vector&gt;,那么一切都很好,文件被索引并且我可以使用它的成员函数。

但是,我希望 IDE 为我生成这些包含文件,而不是手动添加它们。如何设置 eclipse 像这样工作?

我正在使用 Ubuntu 16.04 和 Eclipse CDT Neon。

【问题讨论】:

    标签: eclipse eclipse-cdt


    【解决方案1】:

    这仅在您的项目中的另一个文件已经包含 &lt;vector&gt; 时才有效。

    Add Include 的工作方式是在项目的index 中搜索调用它的名称。如果它在索引中找到与该名称对应的绑定(函数、类型等),它会查看哪个文件声明了该绑定,然后为您包含该文件。

    为此,与名称对应的绑定必须已经在索引中。对于在项目外部文件中声明的绑定(例如标准库头文件),只有在外部文件已包含在项目中的某个文件中时才会出现这种情况。

    【讨论】:

      【解决方案2】:

      @HighCommander4 - 我注意到,通过实践,索引器的行为与您的描述中的一样。必须有另一个文件已经包含 vector 才能将其包含在索引中。

      鉴于这种行为,我们可以执行以下操作:

      1. 一种解决方法是使用包含&lt;bits/stdc++.h&gt; 的虚拟cpp 文件。大多数 stl 标头都在那里。标头可用于 GCC。对于 MSVC,我们可以简单地将 的内容复制到这个虚拟 cpp 文件中。

      2. 另一种解决方法是将链接文件夹添加到 stl 的位置,在我的例子中是 /usr/include/c++/5。在这种情况下,整个 stl 库从一开始就被索引。

      【讨论】:

        猜你喜欢
        • 2018-10-14
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多