这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Tornado下编译出错,关于enum类型

共4条 1/1 1 跳转至

Tornado下编译出错,关于enum类型

菜鸟
2007-06-18 01:34:34     打赏

程序是这样的:

enum matrixtype {
MATRIX_GENERAL,
MATRIX_IDENTITY,
MATRIX_3D_NO_ROT,
MATRIX_PERSPECTIVE,
MATRIX_2D,
MATRIX_2D_NO_ROT,
MATRIX_3D
};


typedef struct {
float *m;
float *inv;
int flags;
enum GLmatrixtype type;
}matrix;

编译后报错:

E:\Tornado2.2\target\h\ugl\glmatrix.h:24: redeclaration of `enum matrixtype'
E:\Tornado2.2\target\h\ugl\glmatrix.h:25: conflicting types for `MATRIX_GENERAL'
E:\Tornado2.2\target\h\ugl\glmatrix.h:25: previous declaration of `MATRIX_GENERAL'
E:\Tornado2.2\target\h\ugl\glmatrix.h:26: conflicting types for `MATRIX_IDENTITY'
E:\Tornado2.2\target\h\ugl\glmatrix.h:26: previous declaration of `MATRIX_IDENTITY'
E:\Tornado2.2\target\h\ugl\glmatrix.h:27: conflicting types for `MATRIX_3D_NO_ROT'
E:\Tornado2.2\target\h\ugl\glmatrix.h:27: previous declaration of `MATRIX_3D_NO_ROT'
E:\Tornado2.2\target\h\ugl\glmatrix.h:28: conflicting types for `MATRIX_PERSPECTIVE'
E:\Tornado2.2\target\h\ugl\glmatrix.h:28: previous declaration of `MATRIX_PERSPECTIVE'
E:\Tornado2.2\target\h\ugl\glmatrix.h:29: conflicting types for `MATRIX_2D'
E:\Tornado2.2\target\h\ugl\glmatrix.h:29: previous declaration of `MATRIX_2D'
E:\Tornado2.2\target\h\ugl\glmatrix.h:30: conflicting types for `MATRIX_2D_NO_ROT'
E:\Tornado2.2\target\h\ugl\glmatrix.h:30: previous declaration of `MATRIX_2D_NO_ROT'
E:\Tornado2.2\target\h\ugl\glmatrix.h:32: conflicting types for `MATRIX_3D'
E:\Tornado2.2\target\h\ugl\glmatrix.h:32: previous declaration of `MATRIX_3D'
E:\Tornado2.2\target\h\ugl\glmatrix.h:46: conflicting types for `matrix'
E:\Tornado2.2\target\h\ugl\glmatrix.h:46: previous declaration of `matrix'

很奇怪的语法错误。难道tornado不支持enum类型??

各位高手帮忙看看!thx ^_^




关键词: Tornado     编译     出错     关于     类型     MATRI    

菜鸟
2007-06-18 16:57:00     打赏
2楼

多处定义了这个enum类型。

定义本身没错。


菜鸟
2007-06-19 02:50:00     打赏
3楼

问题已解决!

是由于头文件的包含关系不当引起的。上述的定义在一个头文件中,工程中有多个文件包含了该头文件,导致重复声明的错误。在该头文件中加入宏定义:

#ifndef HEAD_FILE_NAME

#define HEAD_FILE_NAME

/* context of the file*/

#endif

这样就避免了重复声明的错误!

又学到一招,嘿嘿!多谢……兄帮助!


菜鸟
2007-06-20 01:26:00     打赏
4楼
呵呵,建议买点经典的书看看,会得到很多最基本但最重要的知识。

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]