Page 1 of 1

【已解决】__locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 11:38
by mlinkTech

您好,请问libtuyaos.a,locale_ctype_ptr这个函数怎么定义的,为啥用到这个这个函数locale_ctype_ptr,这个函数有原型吗?我想参考一下实。
现在报这个函数未定义
/home/tuyaos/Documents/tuya/Projects/MK8010C_3.6.0/software/TuyaOS/vendor/MK8010C/tuyaos/../toolchain/gcc/bin/riscv-nuclei-elf-ld: /home/tuyaos/Documents/tuya/Projects/MK8010C_3.6.0/software/TuyaOS/libs/libtuyaos.a(tuya_lwm2m_app_framework.c.o): in function ctiot_at_register_internal':
/root/workspace_temp/cde/tuya_nbiot/tuyaos_nb_sdk/components/svc_nb_connection/src/tuya_lwm2m_app_framework.c:737: undefined reference to
locale_ctype_ptr'
/home/tuyaos/Documents/tuya/Projects/MK8010C_3.6.0/software/TuyaOS/vendor/MK8010C/tuyaos/../toolchain/gcc/bin/riscv-nuclei-elf-ld: /root/workspace_temp/cde/tuya_nbiot/tuyaos_nb_sdk/components/svc_nb_connection/src/tuya_lwm2m_app_framework.c:715: undefined reference to `
locale_ctype_ptr'


Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 12:12
by liujt@tuya.com

sdk要调用toupper()这个函数,查一下您的环境里是否支持这个头文件ctype.h的引用。


Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 14:02
by mlinkTech
liujt@tuya.com 2023年 Sep 19日 12:12

sdk要调用toupper()这个函数,查一下您的环境里是否支持这个头文件ctype.h的引用。

我们环境里支持没有ctype.h的,该函数实现,你们有实现内容吗,我参考加进去


Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 15:00
by liujt@tuya.com

我查了一下你们的环境,是有这个头文件定义的,你可以把路径引用进去再试一下。

微信图片_20230919145814.png

Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 15:54
by mlinkTech

我们libc是有ctype.h
但是我们的ctype.h没有申明locale_ctype_ptr。
而报错是tuya_lwm2m_app_framework.c这个文件里,这个文件应该被生成库了(libtuyaos.a),我搜不到tuya_lwm2m_app_framework.c文件。
报错如下:
/root/workspace_temp/cde/tuya_nbiot/tuyaos_nb_sdk/components/svc_nb_connection/src/tuya_lwm2m_app_framework.c:737: undefined reference to `
locale_ctype_ptr'。

应该是__locale_ctype_ptr没有实现导致的


Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 16:25
by liujt@tuya.com

你好,在你们原始的工具链toolchain/gcc/riscv-nuclei-elf/include/目录下有一个ctype.h,这里是有locale_ctype_ptr定义的,但是在ants_8010c_sdk/lib/libc/include/ctype.h被裁剪掉了,你可以尝试还原,或者引用toolchain目录下的ctype.h再试试.

微信图片_20230919162306.png
微信图片_20230919161603.png

Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 17:34
by mlinkTech

请教一下ctype.h里只是申明一下,没有定义啊
我就把头文件改成一致,也是未定义啊。


Re: __locale_ctype_ptr这个函数怎么定义的

Posted: 2023年 Sep 19日 18:58
by liujt@tuya.com

查一下系统编译选项有没有链接libc,如果问题还是存在,需要问一下芯片原厂,c库对调用toupper()的支持功能是否完善。。。。。