has incomplete type问题及解决

在编译Linux C应用程序时,gcc如果报这种错误:has incomplete type(不完全的类型),往往是由于出现与系统重复的头文件导致

示例:

报错如下:

/usr/include/x86_64-linux-gnu/bits/stat.h:91:21: error: field ‘st_atim’ has incomplete type
struct timespec st_atim; /* Time of last access. */

原因:

出现这种情况,往往是由于你的工程中,include的头文件里有一个与系统中的头文件重名了,因此编译器查找头文件时,是查找的你工程中或者其他非系统路径下的头文件,导致系统中的头文件不再被包含了,因此找不到变量或结构体的声明。

在如上示例中,是由于我的代码里,自己写了一个time.h的头文件,而系统中已经有了一个time.h,并且其中定义了struct timespec,因此编译器提示:has incomplete type,不完全的实现!!!
也就是你的头文件替代了系统头文件且没有相关变量或结构体的声明!!!

编译报错:has incomplete type 不完全的类型相关推荐

  1. 【我的Android进阶之旅】解决Android项目编译报错: Program type already present : com.xxx.xxxx.BuildConfig

    一.错误描述 今天编译项目的时候,出现了一个错误如下所示: AGPBI: {"kind":"error","text":"Prog ...

  2. 编译报错field has incomplete type

    linux下编译C++代码报错,报错信息"field has incomplete type".这种问题一般都是在头文件对类或者结构体进行了前向声明,后面使用了该类定义了对象,导致 ...

  3. Qt 编译报错 error: invalid use of incomplete type 'class QXxx'

    编译报错 头文件中信号: signals:sendStrm(QString str);sendSize(QSizeF size); 信号类,槽函数所在类,单独编译都没问题,到了项目编译,就出错:类名不 ...

  4. 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  5. [Linux Audio Driver] 移植外部CODEC常见编译报错解决(持续更新)

    0. 背景 最近一直在调试codec芯片,好多代码FAE给的和平台不适配,比如结构体改了之类的,一些编译问题老是忘记,就想着顺手写下总结. 1. function definition is not ...

  6. AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.

    AndroidStudio升级到3.1后编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plug ...

  7. 解决C语言程序报错:return type defaults to‘int’

    下面是通过自定义一个函数printN,之后在main函数中调用printN,使得可以通过输入整数N,将从1到N的全部整数都打印出来的程序. 但是在编译过程中却报错: return type defau ...

  8. 使用TS+vue3封装axios时编译报错,提示You may need an additional loader to handle the result of these loaders.

    基于vue3+TS构建的商城后台管理系统 根据coderwhy老师指导搭建的项目为PC端商品后台管理系统. 报错: 使用TS+vue3封装axios时编译报错,提示You may need an ad ...

  9. 源码编译报错系列之:Fatal error compiling: 无效的标记: --release -> [Help 1]

    源码编译报错系列之:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (defau ...

  10. 古月居 机器人开发实践源码 编译报错问题解决方法

    ubuntu:16.04.7 ros:kinetic 移植<机器人开发实践>源码包 ros_exploring,出现的问题都包含于以下内容中. 书中提到,如果将源码包 ros_explor ...

最新文章

  1. Cissp-【第4章 通信与网络安全】-2021-3-14(543页-560页)
  2. 5.3多线程条件变量
  3. 教你怎么在vi和vim上查找字符串
  4. kuangbin专题十六 KMP扩展KMP HDU3068 最长回文
  5. QT + OpenCV + MinGW 在windows下配置开发环境
  6. 数据库服务器查询格式化显示,在数据库服务器端养成设置NLS_LANG和NLS_DATE_FORMAT环境变量的习惯...
  7. websocket阮一峰博客地址教学
  8. SpringCloud Hystrix微服务架构的高并发问题与解决策略
  9. Android性能优化——界面流畅度优化
  10. jenkins-邮件通知
  11. java cp命令:命令行指定需要加载的类classpath
  12. 10.Linux 高性能服务器编程 --- 信号
  13. DNS服务器配置图解过程(1)
  14. js 的arguments的一些理解资料
  15. json多层集合转对象
  16. 中兴f477v2超级管理员_中兴本机电信光猫超级密码获取-中兴F412/F460/F612/F660超级密码获取下载V1.0最新版-西西软件下载...
  17. JavaScript实现浏览器特定区域截屏和下载功能
  18. 台式计算机关机后自行重启,台式电脑关机后自动重启怎么办?台式电脑关机后自动开机的处理办法...
  19. 全面理解面向对象的 JavaScript(转载)
  20. 如何使用Python第三方库

热门文章

  1. 一些脚本软件收集汇总
  2. android 布局中绘制语音曲线,Android仿百度地图小度语音助手的贝塞尔曲线动画
  3. java redis缓存清除_java基础-redis缓存篇
  4. mxnet编译(ubuntu20.04+cuda11)(血泪篇)
  5. 4月12日云栖精选夜读:用Google API 提取名片信息
  6. 什么是前后端分离?应用场景是什么?
  7. 如何在 R 中绘制 Beta 分布
  8. 进程管理和SELinux
  9. 消息中间件之ActiveMQ原理及使用教程(持久化、JMS可靠消息、重试机制与幂等性问题)
  10. C++ 语言拷贝构造函数、拷贝赋值运算符和析构函数