g++编译时warning: “ |
您所在的位置:网站首页 › 40039102指数 › g++编译时warning: “ |
XXX.h:25: warning: "__USE_GNU" redefined
#define __USE_GNU
.....
.....
XXXX/include/features.h:376: note: this is the location of the previous definition
# define __USE_GNU 1
报警原因:
__USE_GNU宏被重复定义。 解决办法:去掉我们定义的__USE_GNU宏(xxx.h文件的25行的#define __USE_GNU代码去掉) 引入新问题: gcc编译时报警告warning: implicit declaration of function ‘CPU_ZERO’; did you mean ‘FP_ZERO’? [-Wimplicit-function-declaration] 报警原因: 需要定义__USE_GNU宏。 问题分析gcc编译器需要定义__USE_GNU宏,g++编译器不需要定义__USE_GNU宏; __USE_GNU 不是开放给用户用的,features.h里面会修改#undef __USE_GNU; _GNU_SOURCE 是给用户用的,features.h里面 375 #ifdef _GNU_SOURCE 376 # define __USE_GNU 1 377 #endifgcc和g++编译器默认定义有区别,g++默认定义了_GNU_SOURCE,gcc没有。 总结:针对上述问题修改方法有2种: 方法一: 在xxx.h定义__USE_GNU的位置加上ifndef #ifndef __USE_GNU #define __USE_GNU #endif方法二: 在编译配置里面定义_GNU_SOURCE,如在CMakeList.txt文件里添加: add_definitions(-D_GNU_SOURCE) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |