RT-Thread添加软件包会出现uint8_t uint16_t uint32_t size_t
未定义错误
RT-Thread添加软件包会出现uint8_t uint16_t uint32_t size_t未定义
RT-Thread定义数据类型,使用rt前缀,如rt_uint8_t rt_uint16_t rt_uint32_t rt_size_t
等
而开源代码是的大家常用,标准C库定义的uint8_t uint16_t uint32_t size_t
数据类型
RT-Thread移植未改过来数据类型定义,头文件也没有加
添加头文件
RT-Thread官可以统一用标准C库定义的uint8_t uint16_t uint32_t size_t数据类型, 使用我们的代码更有通用性。
大家写代码也用标准C库定义的uint8_t uint16_t uint32_t size_t
数据类型,不用使用rt前缀,如rt_uint8_t rt_uint16_t rt_uint32_t rt_size_t
等
我感觉这个主要原因是由于软件包的制作者使用了标准C库定义的uint8_t uint16_t uint32_t size_t数据类型,在制作软件包时间接引用到了下面的头文件,所以并没有包含到软件包中,而导致您使用的时候出现了问题
我的编码习惯是,如果自己的软件模块需要用到uint8_t
之类的数据类型,自己老老实实#include <stdint.h>
,而不是等别人帮你include。
比如你的头文件是 xxx.h,那么:
这样玩的话,xxx.h里面确实不需要#include <stdint.h>
但我觉得这样不好,需要调用者关注你模块的include。
感谢大家,回复
相信大家都会解决这个问题,不是很困难的。
还是建议:
RT-Thread官可以统一用标准C库定义的uint8_t uint16_t uint32_t size_t数据类型, 使用我们的代码更有通用性。
大家写代码也用标准C库定义的uint8_t uint16_t uint32_t size_t数据类型,不用使用rt前缀,如rt_uint8_t rt_uint16_t rt_uint32_t rt_size_t等
配置的软件包,能一次性通过,如果加载软件包多少,改起来,还是有点麻烦,开发者多,如有1亿开发者,每个开发者改这个编译错误用时5分(加重复编译时间)哪么总体开发效率,就整体延误了5亿分钟,想想一个人生命里,有几个5亿分钟
希望RT-Thread官方可以重视这个问题,最起码加载软件包可以编译通过吧.还有很多小伙伴,不能在5分钟解决这个基础问题.