Linux C语言下在多个.h文件里出现的struct定义下的error:“unknown type name ‘XXXX‘ “
最近在跟着韦东山老师的视频在做一个应用开发的任务,在Ubuntu上编译的时候就遇到这样的问题在ui.h文件中#ifndef _UI_H#define _UI_H#include <disp_manager.h>#include <input_manager.h>#define BUTTON_DEFAULT_COLOR 0xff0000#define BUTTON_OK_CO
最近在跟着韦东山老师的视频在做一个应用开发的任务,在Ubuntu上编译的时候就遇到这样的问题
在ui.h文件中
#ifndef _UI_H
#define _UI_H
#include <disp_manager.h>
#include <input_manager.h>
#define BUTTON_DEFAULT_COLOR 0xff0000
#define BUTTON_OK_COLOR 0x00ff00
#define BUTTON_TEXT_COLOR 0x400040
#define BUTTON_BURN_COLOR 0x0000ff
struct Button;
typedef int (*ONDRAW_FUNC)(struct Button *ptButton, pDispBuff ptDispBuff);
typedef int (*ONPRESSED_FUNC)(struct Button *ptButton, pDispBuff ptDispBuff, struct PInputEvent ptInputEvent);
……
#endif
在input_manager.h文件下
#ifndef _INPUT_MANAGER_H
#define _INPUT_MANAGER_H
#include<sys/time.h>
#define INPUT_TYPE_TOUCH 1
#define INPUT_TYPE_NET 2
typedef struct InputEvent{
struct timeval tTime;
int iType;
int iX;
int iY;
int iPressure;
char str[1024];
}InputEvent,*PInputEvent;
typedef struct InputDevice{
char *name;
int (*GetInputEvent)(PInputEvent ptInputEvent);
int (*DeviceInit)(void);
int (*DeviceExit)(void);
struct InputDevice *ptNext;
}InputDevice,*PInputDevice;
………
#endif
编译器开始报错:
此时可能出现了两种情况:
第一种情况:
仔细看看你两个头文件里是否重复包含了,如果有请把其中一个头文件里的头文件声明删掉,可能问题就解决啦。
问题还没解决?那么就试试以下的方法吧!
第二种情况:
在你报错的段落那里,比如我,就是在ui.h文件里往ONPRESSED_FUNC函数的形参列表中PInputEvent前面加上struct
编译器就通过了,但具体是什么原因欢迎各位大佬指教我这个菜鸟一下,感谢!
更多推荐
所有评论(0)