bigbaicai

芯方式是以开云棋牌官网在线客服人、电子工程师等电子行业相关领域从业人员为核心的知识经验学习、分享、交流社群。 凭借开放、合作、共赢的运营理念,聚集了来自国内外知名院校和顶尖科技公司的开云棋牌官网在线客服人、电子工程师。 我们致力于营造专业、认真、有温度的分享交流环境,将高质量的内容和方案成规模地生产和分享,帮助个人和团队在芯方式找到有价值的Key。 http://www.icfans.com/

RVCT同一个文件有重复定义的宏,编译时不会报错

0
阅读(1161)

[DESCRIPTION]
在代码中发现:
1. 同一个文件有重复定义的宏,编译时不会报错,如:
#define ___ABCDE___ 1
#define ___ABCDE___ 2
kal_uint8 rmmi_file_fupl_hdlr(rmmi_string_struct *source_string_ptr) {
return ___ABCDE___;
}
[SOLUTION]来自开云棋牌官网在线客服社区
这是因为RVCT编译系统的原因,编译时只会给出warning信息,不会报错
对于这种重复定义的宏,客户要求将这种warning信息,改为error的话,可以按照以下方式修改:
(附:在mmitask.c这个文件中进行重定义测试)
编译后的waring提示信息如下:
"lcmmi/mmi/framework/tasks/taskssrc/mmitask.c",
line 662: Warning: #47-D: incompatible redefinition of macro
"___ABCDE___" (declared at line 661) #define ___ABCDE___ 2 ^ )
修改方式:
通过在comp.mak文件中添加以下的脚本,
ifeq ($(strip $(COMPONENT)), lcmmi)(后面的lcmmi是该warining消息所在的模块名称

CFLAGS += --diag_error=47 (47是该warning消息的tag标号)
endif
按照这种方式进行修改,就可以将warning提示消息修改为error提示消息

Baidu
map