工具-Eclipse+symbol ‘vector ’could not be resolved/Symbol 'hash_map' could not be resolved

==========Eclipse使用vector报错:symbol vector could not be resolved========

原因

以后补充。

我的猜想是路径设置不对。但是自己没有办法去验证这个猜想。

可以仔细研究该问题:https://*.com/questions/10803685/eclipse-cdt-symbol-cout-could-not-be-resolved

解决方法:

1.准备一个编写好的test.c和test.cpp源文件。

1.可以是空的test.c和test.cpp文件。
2.使用终端,查看C 库文件的路径:

  在终端下输入:  $ gcc -v test.c

3.查看输出。重点关注以下内容:

·····················

#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
End of search list.

················

4.查看C++ 库文件的搜索路径:

在终端下输入:$ g++ -v test.cpp

5.查看输出,重点关注以下内容:

···················

#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/5
 /usr/include/x86_64-linux-gnu/c++/5
 /usr/include/c++/5/backward
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

End of search list.

··············

6.在eclipse中菜单Window --> Preferences --> C/C++ --> Build --> Environment添加环境变量

C_INCLUDE_PATH =/usr/lib/gcc/x86_64-linux-gnu/5/include: /usr/local/include: /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed: /usr/include/x86_64-linux-gnu: /usr/include

CPLUS_INCLUDE_PATH=/usr/include/c++/5:/usr/include/x86_64-linux-gnu/c++/5:/usr/include/c++/5/backward:/usr/lib/gcc/x86_64-linux-gnu/5/include:/usr/local/include:/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed:/usr/include/x86_64-linux-gnu:/usr/include

1.使用的冒号是英文中的:而不是中文的冒号:。
7.选中下面的Append variables to native environment.

8.重启Eclipse 新建项目即可。

如果出现重新新建项目时,出现了题目中的问题或是在输入代码时出现红色波浪线提示,可以先build一下,然后这些错误提示就会消失。

为什么会有上述现象出现???——不知道,原因有待考察!

==================================================================================

补充另一个解决方法,可以解决问题,但是需要多次重启Eclipse,因此我很嫌弃这种做法。

解决办法:

1.project——properties——C/C++ General——Perprocessor include Paths,Macros etc.——Providers——check:CDT GCC Built-in Compiler Settings Cygwin[shared]——check:use global provider shared between projects ——Apply。

2.重启Eclipse。并且projet——index——Rebuild。

重新加入一个STL函数,就需要重新启动一次?——这种现象导致我很不看好这种解决方法。
3.设置结果。

工具-Eclipse+symbol ‘vector ’could not be resolved/Symbol 'hash_map' could not be resolved

==========Eclipse使用vector报错:Symbol 'hash_map' could not be resolved========

1、解决什么问题?

2、解决的方法:

(1)需要正确引用头文件:

(2)形式如下:

=>在Linux下g++的形式:

头文件::         #include <ext/hash_map>

命名空间::     using  namespace   __gnu_cxx;

 使用方法::

        使用方法上和map没有什么大的区别,

         #include <ext/hash_map>

         using    namespace    __gnu_cxx;

         hash_map<key_type,value_type>   obj;

         hash_map<key_type,value_type>::iterator   iter = obj.begin();  

=>在Windows下VC++的形式:

和map的使用方法一样,没有命名空间,直接#include <hash_map>就可以使用了,就像直接#include <map>一样。

3、其他补充地方?

网络上有一堆的方法:

1."Properties" C/C++ General -> Pathsand Symbols -> Symbols -> GNU C++,添加__GXX_EXPERIMENTAL_CXX0X__

2.std::hash_map

3.修改C++ build或者c++ general 中的配置。

尝试上述方法后,越改越错,最后发现,是自己的头文件没有引入正确!!