base_device.c:(.text.eZHA_RegisterBaseDeviceEndPoint+0xed): undefined reference to `sCLD_DoorLock'
base_device.c:(.text.eZHA_RegisterBaseDeviceEndPoint+0xf4): undefined reference to `au8DoorLockAttributeControlBits'
base_device.c:(.text.eZHA_RegisterBaseDeviceEndPoint+0xf7): undefined reference to `eCLD_DoorLockCreateDoorLock'
base_device.c:(.text.eZHA_RegisterBaseDeviceEndPoint+0xf7): relocation truncated to fit: R_BA_18_PCREL against undefined symbol `eCLD_DoorLockCreateDoorLock'
collect2.exe: error: ld returned 1 exit status
当我在nxp5169的平台上面加入新的集群然后在base_device.h的实例中进行添加之后编译发现有问题,原因是没有加入对应的文件所在的路径
附上网页:
https://community.nxp.com/docs/DOC-335075
nxp提供的加入集群的说明书
加入集群的几个步骤:
1.配置文件中profile中加入该集群
2.配置文件端点中加入该集群
3.在zcl_options.h中加入声明对应的内容
4.在makefile中添加声明 如新加入的集群是clour 的然后
5.在base_device.h /.c下面去添加新生命的集群(同时要包含对应的头文件
这里我们声明新集群的实例的时候 用到了#include "ColourControl.h"
但是这些对应的文件平时是没有被选中的,因此要在makefile或者配置文件中加入这些对应的路径,在sdk中做的有,这里没法直接复制进来图片啊— —。
sdk/JN-SW-4170/Stack/ZCL/Build/config_ZCL.mk
这个路径下面会将在上面的makefile中声明的内容给添加进来,这里主要是根据你定义的值去选择一些文件添加然后进行编译。这里我个人建议去这个config_ZCL.mk下面看下你所需要的文件的路径时对应哪个变量的 ,然后再去进行声明,防止不知道该如何进行声明