我有以下代码:
#include <iostream>
using namespace std;
int main()
{
vector<int> v; //Symbol vector could not be resolved
return 0;
}
IDE抱怨“矢量”:符号矢量无法解析。
如果我右键点击“vector”关键字 - &gt;来源 - &gt;添加包含,没有任何反应。
如果我手动添加#include <vector>
,那么一切都很好,文件已编入索引,我可以使用其成员函数。
但是,我希望IDE为我生成这些包含文件,而不是手动添加它们。如何设置eclipse这样工作?
我使用的是Ubuntu 16.04和Eclipse CDT Neon。
答案 0 :(得分:1)
仅当项目中的其他文件已包含<vector>
时才会生效。
添加包含的方式是在项目的索引中搜索它所调用的名称。如果它在索引中找到与该名称对应的绑定(函数,类型等),它会看到哪个文件声明了该绑定,然后为您包含该文件。
为此,与名称对应的绑定必须已在索引中。对于在项目外部的文件中声明的绑定(例如标准库头),只有在项目中的某个文件已包含外部文件时才会出现这种情况。
答案 1 :(得分:1)
@ HighCommander4 - 我注意到,通过练习,索引器的行为与您的描述相似。必须有另一个文件已包含vector
才能将其包含在索引中。
鉴于此行为,我们可以执行以下操作:
一种解决方法是使用包含<bits/stdc++.h>
的虚拟cpp文件。大多数stl头都在那里。标题可用于GCC。对于MSVC,我们可以简单地将内容复制到这个虚拟cpp文件中。
另一种解决方法是将链接文件夹添加到stl的位置,在我的情况下,这是/usr/include/c++/5
。在这种情况下,整个stl库从一开始就被编入索引。