【gcc/complier】gcc编译出现field 'xxx' has incomplete type的问题


Date:2018.9.29


1、参考

https://blog.csdn.net/junjun5156/article/details/75039881?locationNum=8&fps=1
https://blog.csdn.net/mading0613/article/details/78587673
https://baike.baidu.com/item/timeval

2、问题描述

    gcc编译出现field ‘xxx’ has incomplete type的问题:
使用的struct timeval field “tStart” and “tEnd” 具有不完整的类型。
关于Linux下时间计算结构体timeval的用法可参考:
https://blog.csdn.net/soaringlee_fighting/article/details/70919381

3、原因分析

  在编译程序时, 类或结构体有前向声明的用法,编译到这里时还没有发现定义,不知道该类或者结构的内部成员,没有办法具体的构造一个对象,所以会报错。

4、解决方法

方法一:将类成员改成指针就好了;
方法二:将结构体定义放同一个地方。将结构体的定义包含在头文件中,加入使用该结构体的代码之前就可以了。对于该例,在使用struct timeval之前加入以下头文件即可。

#include "sys/time.h"

THE END!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM