QT include 头文件出现hash incomplete type错误解决方案

本文记录了一次解决编译错误的过程,错误出现在新建类并引入特定头文件时。通过调整头文件的包含位置,最终定位到B.h文件本身的问题,而非新类A。文章强调了前置声明可能导致的hasincompletetype错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新建一个类,并引入另一个头文件,编译时出现以下错误:

 

 

一开始以为是新建的类 A,用到的数据结构引入的头文件不全导致,结果把类A里面的内容全部注释了还是会出现同样的问题。

后来发现原来是只要include 另一个头文件B.h时,就一定会出现这个错误。

奇怪的是在没有新建这个类A之前,整个程序编译是没有问题的!

经过检查发现只要把B.CPP中的所有头文件全部移到B.h中,再重新再A里面引入,然后编译就通过了。

出现这个问题的原有是B.h本身就有错误,而非新类A有问题。

当看到has incomplete type的时候,知道是前置声明的问题,但是却错误的在A里面折腾太久。(诡异的是没有A之前,B是完全可以正常编译和运行的!!!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值