当前位置: 技术问答>linux和unix
linux下的编译问题,请帮忙解决!
来源: 互联网 发布时间:2016-01-27
本文导语: ../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_...
../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”这样我整个工程里面只有一处定义,但是好像提示重复定义,不知道什么原因,哪位给解释一下。
../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”这样我整个工程里面只有一处定义,但是好像提示重复定义,不知道什么原因,哪位给解释一下。
|
redefinition,应该是在头文件中定义了全局变量吧?这种情况保护宏起不到作用的
头文件中最好不要定义变量而只是用extern声明,定义统一放在cpp中吧
头文件中最好不要定义变量而只是用extern声明,定义统一放在cpp中吧
|
应该区别声明和定义的区别
2,要明白什么情况下使用
#ifdef _XXHEADER_H_
#define _XXHEADER_H_
// header place here
#endif
2,要明白什么情况下使用
#ifdef _XXHEADER_H_
#define _XXHEADER_H_
// header place here
#endif
|
头文件被#include了多次!
|
应该
#ifndef ***
#define ***
#else
#define ****
#endif
#ifndef ***
#define ***
#else
#define ****
#endif
|
贴代码, 光这么说说不清楚.
看样子你这个应该不是宏, 是变量吧, 我估计是声明处没有加extern的原因吧.
看样子你这个应该不是宏, 是变量吧, 我估计是声明处没有加extern的原因吧.
|
被包含多次了,也会引起重新定义的
|
up
不会
不会
|
把../inc/typedef.h贴出来让大家看看吧。