使用RTX和emWin,出现错误RTL.h(39): error:  #240: duplicate
错误如下:==========================
出现这样的错误是应为Global.h文件和RTL.h文件重定义了,由于Global.h文件里面是这么定义的
#ifndef U8
#define U8unsigned char
#endif
#ifndef U16
#define U16 unsigned short
#endif
#ifndef U32
#define U32 unsigned long
#endif
#ifndef I8
#define I8signed char
#endif
#ifndef I16
#define I16 signed short
#endif
#ifndef I32
#define I32 signed long
#endif
#endif // Avoid multiple inclusion
=======================================
调用头文件的时候,RTL.h放在emWin相关头文件的全面即可。
老大!我用你的模板改的--也会出现这个错。找个一天 也搞不明白 哪里还有错?我都把别几个.C文件都退出工程。只留这一个。还是这个错! tanguicaicai 发表于 2019-5-6 19:11
老大!我用你的模板改的--也会出现这个错。找个一天 也搞不明白 哪里还有错?我都把别几个.C文件都退出工程 ...
使用我这个模板看看
http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330&extra=page%3D1 本帖最后由 雷鹏 于 2019-7-4 14:44 编辑
碰到过类似问题 ,不知道是不是两个文件重复包含了,没时间去深入研究了,想了个很不好的临时解决办法:
在RTL.H里面做了入下更改
typedef signed char S8;
//typedef unsigned char U8;
#ifndef U8
typedef unsigned char U8;
#endif
typedef short S16;
//typedef unsigned shortU16;
#ifndef U16
typedef unsigned shortU16;
#endif
typedef int S32;
//typedef unsigned int U32;
#ifndef U32
typedef unsigned int U32;
#endif
。
编译没问题了
这种办法是没有办法的办法,一般不建议修改官方程序 ,后期有精力了在深入研究模板看看。
页:
[1]