RT_thread系统下,应用v5.38版本keil5进行编译,pikascript相关软件版本为:
pikascript-core==v1.12.2
PikaStdLib==v1.12.2
pikaRTThread==v1.3.2
在运行例程时发现无法正常打印数字,程序代码如下:
print('mem use max:')
mem.max()
print('mem use now:')
mem.now()
list = PikaStdData.List()
list.append(23)
list.append(45)
print(list.get(0))
print(list.get(1))
print(100)
输出结果为:
mem use max:
2.14 kB
mem use now:
1.15 kB
%ld
%ld
%ld
求指教为什么数字不能正确的输出。
离线
因为你当前的libc的vsnprintf不是完整实现,不支持%ld的打印
解决方法是在requestments.txt里面加一个模块,pika_libc,这里面提供了一套完整的vsnprintf,添加编译就可用了,会覆盖原有的vsnprintf
离线
因为你当前的libc的vsnprintf不是完整实现,不支持%ld的打印
解决方法是在requestments.txt里面加一个模块,pika_libc,这里面提供了一套完整的vsnprintf,添加编译就可用了,会覆盖原有的vsnprintf
非常感谢,按照提示增加了pika_libc模块,编译过程中提示platform_vsnprintf重定义,后来去掉了pika_config.c中的
//int __platform_vsnprintf(char* buff, size_t size, const char* fmt, va_list args){
// return rt_vsnprintf(buff, size, fmt, args);
//}
编译通过,经验证,数据打印正常。
离线