完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我下载了z-stack linux gateway 然后尝试编译到PC机去执行,按照流程,我下载了 protobuf2.6.1版本。protobuf-c1.2.1版本,并且在ubuntu上也安装成功了,使用protoc-c编译了 nwkmgr.proto 文件
开始编译代码,遇到 nwkmgr.pb-c.h:12:3: error: #error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. 然后按照指示,更新了 代码目录中的google/protobuc-c/下面的protobuf-c.h头文件。可以又遇到以下问题 /zstackpb/zstack.pb-c.h:11:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ typedef struct _AFAddr AFAddr; zstackpb/zstack.pb-c.h:498:3: error: unknown type name ‘AFAddr’ AFAddr *dstaddr; 还有一个问题,就是为什么源代码目录中没有zstack.pb-c.c的 zstack.proto和server.pb-c.c的server.proto文件?? |
|
相关推荐
12 个讨论
|
|
ggfvxv 发表于 2018-8-9 09:35 先谢谢回复 我这边是这样的情况,protobuf 使用的是 2.6版本 protobuf-c是1.2.1版本 然后我这边编译为x86架构,默认不改任何代码,可以编译生成固件,并没有任何问题 后面我给nwkmgr.proto添加新内容,就加了一个message。然后重新使用protoc-c --c_out=./ nwkmgr.proto 重新生成了 nwkmgr.pb-c.c和h文件,然后扔在目录里面再次编译,这边编译出现错误,提示我这边使用的是新版本的protobuf-c编译的,让我更新一下protobuf-c的头文件,也就是我帖子一开始的问题,然后按照指示,我更换了代码目录里的protobuf-c的头文件,再次编译,然后又开始报错,这次是 zstack.pb-c.c文件 报错内容 /zstackpb/zstack.pb-c.h:11:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ typedef struct _AFAddr AFAddr; |
|
|
|
|
|
|
|
|
据我了解,目前protobuf-c并不是google官方支持的,而是第三方的一个实现,不过做的也挺不错的,标准的protobuf只有C++、java等的实现,并没有c的实现。 所以显然protobuf几个版本之间兼容性出了一些问题,TI zigbee linux gateway释放的时间是在2014年,那时protobuf-c版本显然不是1.2.1版本,还可能更早。 protobuf目的是为了传输数据,其实同一个进程里面,这个性能并不是很大,从TI的代码来看,并非同一个团队开发的,有好几个风格的代码,所以可能是为了团队之间合作才决定使用的protobuf来交换数据。 所以建议你还是自己写个结构体,直接传参数好了,没必要用他的*.proto外加再生成.c和.h文件,再进一步的编译。 题外话: 我们当初准备在zigbee linux gateway上做的开发,评估分析了代码之后,还是放弃了,这里面过于复杂,冗余的实现很多,多个进程之间相互作用,还要依赖脚本跟踪进程的生命周期,一旦一个崩溃了,整个gateway都得退出,问题很多。 后来就还了znp-host-framework,简单好用,只是功能很多有缺少,不过不是难事,诸如OTA,诸如ZCL,诸如指令seqNumber跟踪,后来都给加上了,目前用起来比较稳定。 |
|
|
|
|
|
|
|
ggfvxv 发表于 2018-8-9 10:15 嗯,之前了解过znp-host-framework,但是底层固件使用了ZHA的现成ZCL,而znp-host-framework却没有 ZCL,要去移植过来,由于开发人员太少,所以直接用了gateway的,自己删除了部分其他平台不用的 ,主要坑爹的是手机端已经实现了三个Server的链接和数据交换了,现在没退路了,只能硬着搞了,对的 这个gateway的代码确实调来调去的很复杂,但是不得不说的是,部分代码的逻辑写的很好,就当学习了,而且现在也被精简的差不多了,现在就增加新功能的时候却来这出。。。不服啊 笑哭 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
553 浏览 0 评论
1616 浏览 0 评论
2049 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1516 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1343 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1759浏览 29评论
2787浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1726浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1637浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1647浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 07:39 , Processed in 0.894683 second(s), Total 78, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2482