首页 > 编程语言 > 详细

树莓派3B+实践(2)- 阿里云物联网平台接入(设备端C语言SDK编译)解决undefined reference to `IOT_CMP_Init'错误

时间:2018-08-19 22:32:05      阅读:406      评论:0      收藏:0      [点我收藏+]

本想实践亚马逊aws的接入方案,由于亚马逊aws个人账户需要VISA信用卡,所以先用阿里云实践学习,以后有机会再接入aws。

1. 申请一个阿里云账户,需要绑定支付宝账户,阿里云个人账户可以申请部分业务免费,而且基础版每个月前100w条消息传输免费,个人用来学习实践绰绰有余。

2.根据阿里云物联网平台的帮助文档进行服务器端配置,这里不再赘述,帮助文档网址。

3. 重点说一下遇到的坑,由于阿里云的设备端sdk一直在更新功能,然而官网和github上的帮助文档没有随之更新,所以直接按照文档编译sdk的example会出现编译错误,

  错误显示为undefined reference to `IOT_CMP_Init‘等等,表示为该函数并未定义,通过查看源代码,确实只有函数声明,没有函数定义,技术分享图片

在反复查看教程和确认文件完整性后,通过查看阿里云C语言SDK说明得到了启发,是不是需要在make.settings文件中修改部分配置,再看了sdk的版本更新说明就更加确信了这一点,更新说明如图

技术分享图片

所以修改make.settings文件的配置,具体是将FEATURE_CMP_ENABLED,FEATURE_DM_ENABLED,FEATURE_SERVICE_OTA_ENABLED三个选项配置为n。配置后如下:

FEATURE_MQTT_COMM_ENABLED   = y
FEATURE_MQTT_DIRECT         = y
FEATURE_MQTT_DIRECT_NOTLS   = n
FEATURE_MQTT_DIRECT_NOITLS  = y
FEATURE_COAP_COMM_ENABLED   = n
FEATURE_HTTP_COMM_ENABLED   = y
FEATURE_SUBDEVICE_ENABLED   = n
FEATURE_CMP_ENABLED         = n
FEATURE_DM_ENABLED          = n
FEATURE_SERVICE_OTA_ENABLED = n

然后再执行命令,重新编译通过。

make distclean
make

接下来再按照官方教程执行可执行文件,服务器端设备信息由未激活变为离线,即可在服务器端的日志服务中看见设备已经上线。

 

树莓派3B+实践(2)- 阿里云物联网平台接入(设备端C语言SDK编译)解决undefined reference to `IOT_CMP_Init'错误

原文:https://www.cnblogs.com/vitch/p/9502818.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!