linux下的编译问题,请帮忙解决!
../inc/typedef.h:59: redefinition of `ENUM_SFN_SFN_OTD_TYPE '
../inc/typedef.h:59: here is the previous declaration of `ENUM_SFN_SFN_OTD_TYPE '
../inc/typedef.h:61: redefinition of `ENUM_T_CR_MAX_HYST '
../inc/typedef.h:61: here is the previous declaration of `ENUM_T_CR_MAX_HYST '
../inc/typedef.h:63: redefinition of `ENUM_TEMP_OFFSET1 '
../inc/typedef.h:63: here is the previous declaration of `ENUM_TEMP_OFFSET1 '
../inc/typedef.h:65: redefinition of `ENUM_TEMP_OFFSET2 '
../inc/typedef.h:65: here is the previous declaration of `ENUM_TEMP_OFFSET2 '
../inc/typedef.h:67: redefinition of `OPTION_BIT_32 '
../inc/typedef.h:67: here is the previous declaration of `OPTION_BIT_32 '
以上只是其中的一部分,象“ENUM_T_CR_MAX_HYST”这样我整个工程里面只有一处定义,但是好像提示重复定义,不知道什么原因,哪位给解释一下。
[解决办法]
头文件被#include了多次!
[解决办法]
应该
#ifndef ***
#define ***
#else
#define ****
#endif
[解决办法]
贴代码, 光这么说说不清楚.
看样子你这个应该不是宏, 是变量吧, 我估计是声明处没有加extern的原因吧.
[解决办法]
redefinition,应该是在头文件中定义了全局变量吧?这种情况保护宏起不到作用的
头文件中最好不要定义变量而只是用extern声明,定义统一放在cpp中吧
[解决办法]
被包含多次了,也会引起重新定义的
[解决办法]
应该区别声明和定义的区别
2,要明白什么情况下使用
#ifdef _XXHEADER_H_
#define _XXHEADER_H_
// header place here
#endif
[解决办法]
up
不会
[解决办法]
把../inc/typedef.h贴出来让大家看看吧。