编译问题

当你引入一个头文件,出现一堆什么 无法识别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.你调用的函数是否是导出的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值