RT-Thread Studio 使用cJSON软件包两个常见错误

OS:win7

RT-Thread Studio: 版本: 1.1.0  构建ID: 202005291500

rt-thread:4.0.2

使用cJSON有几个小问题,记录之。

   RT-Thread Studio 1.1.0是刚发布的版本,需重新安装。该版本支持STM32F4,刚好用手上的STM32F407ZGT6开发板做个cJSON的试验:

1、创建项目

新建RT-Thread项目,相关选项如下图:

RT-Thread Studio 使用cJSON软件包两个常见错误

2、添加cJSON软件包

双击项目下RT-Thread settings,在软件包->IoT - internet of things 下添加cJSON,选中Value中的单选框,点击前面的三角展开,选中Version为latest。然后点击保存。 RT-Thread Studio会自动下载选中的软件包。

RT-Thread Studio 使用cJSON软件包两个常见错误

3、错误1:unknow type name 'size_t'

添加cJSON软件包后,编译项目,会提示如下size_t错误:

RT-Thread Studio 使用cJSON软件包两个常见错误

在cJSON.h 中增加stdlib.h头文件。

RT-Thread Studio 使用cJSON软件包两个常见错误

再次编译,上述size_t错误提示消失。但出现如下错误。

4、错误2: undefined reference to 'floor'

新错误如下:

RT-Thread Studio 使用cJSON软件包两个常见错误

提示未定义的floor函数。其原因是在cJSON.c中使用了floor函数,需要在编译时增加-lm参数。在RT-Thread Studio中增加该选项的设置方法如下:

点击构建配置选项图标,如下图红框中:

RT-Thread Studio 使用cJSON软件包两个常见错误

按下图步骤,选择 c/C++构建 -> 设置 -> 工具设置 -> Cross ARM C Linker -> Libraries , 然后点击3处图标,在出现的界面中输入字符m,然后确定

RT-Thread Studio 使用cJSON软件包两个常见错误

再次编译,编译成功,如下图。

RT-Thread Studio 使用cJSON软件包两个常见错误

至此CJSON软件包才算真正添加成功。接下来即可进行CJSON的相关操作。