当你引入一个头文件,出现一堆什么 无法识别stl 或一些结构的错误时。
可能是因为这个头文件的上一个被引入的头文件里面有 分号(;)或括号 没有匹配的错误
例子:
#include "KGTableDefine.h"
#include "../KGRLFile/IKGRLFile.h"
KGTableDefine.h 是一个定义一些 数据结构的头文件,因为它的最后一个 struct{}没有分号
在编译的时候 错误就被定为在IKGRLFile.h 一般一个错误会报 XXXX之前少了个分号
在一个 头文件B.h里 声明下 其他类
如 class A; 就可以在这个头文件里用了。
不过要注意一下2点 编译才能顺利通过。
1. 必须在B.cpp里 包含 class A 所在的头文件(#include "A.h")
2. B.cpp里在#include "B.h"之前 必须先 include "A.h"
最后在B.cpp里的头文件包含顺序应该是:
#include "A.h"
...
#include "B.h"
因为编译器是按顺序链接的
某县包含A.h 这头文件里就无法识别 class A
发生 link错误时
如果是引入外部lib的头文件:
1.先检查是否 加对应lib 加入到当前工程
2.你调用的函数是否是导出的