Warning: function "HCI_LE_ConnUpdateCmd" declared implicitly
我在从机工程里移植主机程序。
发现一个警告Warning[Pe223]: function "HCI_LE_ConnUpdateCmd" declared implicitly
跟踪进去,发现在hci.h文件里有定义。在1445行
需要定义:
#if defined(CTRL_CONFIG) && (CTRL_CONFIG & INIT_CFG)
extern hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle,
uint16 connIntervalMin,
uint16 connIntervalMax,
uint16 connLatency,
uint16 connTimeout,
uint16 minLen,
uint16 maxLen );
#endif // CTRL_CONFIG=INIT_CFG
请问,这个怎么定义呀?怎么弄?
谢谢了!
头文件没包含?
包含了
include "hci.h"
没有申明函数原型吧?解决办法看这边: http://blog.sina.com.cn/s/blog_629f56a70100irbn.html
这个定义的含义是:如果你宏定义中出现了CTRL_CONFIG,而且CTRL_CONFIG的值按位与INIT_CFG后的值为真,那么就声明 HCI_LE_ConnUpdateCmd这个函数原型,反之不声明。所有这些都是在编译环节完成的,
你的警告显然是没有声明函数原型,也就是说要么你移植的程序没有宏定义CTRL_CONFIG,要么你定义了CTRL_CONFIG,但是定义的数值不等于INIT_CFG,
可以先去掉#if defined(CTRL_CONFIG) && (CTRL_CONFIG & INIT_CFG) 和#endif // CTRL_CONFIG=INIT_CFG 这两句,试试。
谢谢你的回复。
去掉#if defined(CTRL_CONFIG) && (CTRL_CONFIG & INIT_CFG) 和#endif // CTRL_CONFIG=INIT_CFG 这两句,还是一样鞥名。
没有声明!
你可以再从机工程里,把从机程序都删掉,添加主机程序。
添加相应的文件,比如profile的central.c .h
我的程序也没有你们的那么复杂有宏定义,文件也包含进去了。但是怎么也提示说declared implicity呢?求大神指导
buildConfig.cfg中有,修改为
//-DHOST_CONFIG=BROADCASTER_CFG
//-DHOST_CONFIG=OBSERVER_CFG
//-DHOST_CONFIG=PERIPHERAL_CFG
//-DHOST_CONFIG=CENTRAL_CFG
//-DHOST_CONFIG=BROADCASTER_CFG+OBSERVER_CFG
//-DHOST_CONFIG=PERIPHERAL_CFG+OBSERVER_CFG
//-DHOST_CONFIG=CENTRAL_CFG+BROADCASTER_CFG
-DHOST_CONFIG=PERIPHERAL_CFG+CENTRAL_CFG
真厉害
谢谢你