1.变量、函数、或者类未声明或者定义。这是最简单的情况~却是我经常犯的错误(基本也是这几个原因中可能性最大的)
另外,网上有人指出以下原因也会导致该提示错误:
2.头文件相互#include时,导致了依赖关系错误。比如,头文件形成了一个环形依赖。
如果在file b中用到了file a中的变量、函数、类,那么由于#ifndef和#define的作用,file b中的#include
3.头文件起名字的时候不小心和库中的头文件重名了,而在程序中又用了这个库的这个头文件。
这样, 就造成宏重名了,一定有一个头文件因为 #ifndef失去了效果。别的文件自然找不到这个头文件中的声明,就提示 was not decleared in this scope了