错误:在sdk中添加新文件时没有这样的文件或目录,请在中的ble_service.c definition中回调函数定义

了解更多常见问题教程

6个职位/0个新职位
最后一篇文章
普拉桑纳
离线
最后一次见到:3天5小时前
已加入:2020-09-29 11:56
错误:在sdk中添加新文件时没有这样的文件或目录,请在中的ble_service.c definition中回调函数定义

亲爱的Dialog,

1在创建定制服务的过程中,我在ble\u adv demo项目的“sdk->ble->services”文件夹中创建了两个文件custom\u service.h和custom\u service.c。我使用的是sdk10.0.10。当我试图构建项目时,custom\u service.h出现了这个错误。

“致命错误:custom\u service.h:没有这样的文件或目录
#包括“定制服务.h”
| ^~~~~~~~~~~~~~~~~~

我不明白这个新添加的文件有什么问题。它们位于正确的路径中,并且它们的项目位置相同。我还检查了c/c++构建设置中的include路径。一切看起来都很好。我请求您帮助我,因为我无法测试我的新添加的工作与否。

2我对sdk中的ble_adv/sdk/ble/services/includes/ble_service.h和/ble_adv/sdk/ble/services/src/ble_service.c文件中的回调函数原型和它们的定义理解有点混乱。我将在这里附上一个函数来解释我不明白的地方。

//ble_service.h typedef void(*connected_evt_t)(ble_service_t*svc,const ble_evt_gap_connected_t*evt)中的回调函数原型;//我假设上面的回调函数(connected_evt)定义static void connected_evt(const ble_evt_gap_connected_t*evt){int I;for(I=0;Iconnected_evt){svc->connected_evt(evt);}}}}

所以,我没有得到的是

1如果(*connected_evt_t)指向connected_evt()函数,那么为什么在函数定义中不传递第一个参数(ble_service_t*svc)。既然原型和定义应该和参数的个数相同?

提前谢谢。

你好,普拉桑娜

设备:
PM\U对话框
离线
最后一次见到:2天11小时前
工作人员
已加入:2018-02-08 11:03
你好,普拉桑纳,

你好,普拉桑纳,

正如您在最初的帖子中提到的,您已经开始开发自己的项目。那么,你能看一下DA1469x启动项目教程确保设置正常?在第2节中,您还将找到包含您自己的文件的步骤。

你能不能也拍一张错误的截图和大家分享一下?

typedef struct ble\u service ble\u service;是一个全局结构。

谢谢,下午好

普拉桑纳
离线
最后一次见到:3天5小时前
已加入:2020-09-29 11:56
嗨,PM\U对话,

嗨,PM\U对话,

我已经从sdk中导入了ble\u adv demo项目,并开始对其进行更改。在这个过程中,我将custom\u service.h和custom\u service.c分别添加到“sdk->ble->services”include和source文件中。这是对现有演示项目进行更改的正确方法吗?请查找有关添加文件到ble\u adv demo项目的错误附件。

将新文件添加到SDK生成文件时出错:/home/prasanna/DiaSemi/SDK_.0.10.118/SDK/interfaces/ble/services/src/customïservice.c调用:Cross-ARM c Compiler/home/prasanna/DiaSemi/SDK_.0.10.118/SDK/interfaces/ble/services/src/customïservice.c:49:10:致命错误:customïservice.h:没有此类文件或目录49 |##包括“自定义|服务.h”| ^~~~~~~~~~~~~~~~~~~编译已终止。make[1]:***[sdk/ble/services/src/细分市场:116:sdk/ble/services/src/custom\u service.o]错误1生成:**[生成文件:60:all]错误2“make--silent all”终止,退出代码2。生成可能不完整。

2另外,我遇到了另一个问题。无论我对SDK下的一个演示项目做了什么更改,它们都同样适用于其他演示项目,因为它们在同一SDK下。例如,如果我在ble\u adv project的ble->service->include中添加一个头文件,它们也会自动添加到ble\u custom\u service project的相同路径中。这给我带来了额外的删除和添加文件的问题。请告诉我如何纠正这个问题。

PM\U对话框
离线
最后一次见到:2天11小时前
工作人员
已加入:2018-02-08 11:03
你好,普拉桑纳,

你好,普拉桑纳,

你提到这张票上的问题已经解决了,是吗?

https://support.dialog semiconductor.com/forums/post/dialog smartbond蓝牙低能耗-%E2%80%93软件/错误未定义参考函数

你能澄清一下你的第二个问题吗?有教程和软件示例演示如何实现定制服务。您不需要修改任何SDK文件。

谢谢,下午好

普拉桑纳
离线
最后一次见到:3天5小时前
已加入:2020-09-29 11:56
嗨,PM\U对话,

嗨,PM\U对话,

我的第二个问题。

我目前正在使用两个演示项目。一个是“ble adv”演示,另一个是“da1469x\u custom\u ble\u service\u sample\u code”。我想将“da1469x\u custom\u ble\u service\u sample\u code”中在sdk外部创建的custom\u service.c和custom\u service.h文件复制到sdk/ble/services文件夹中的“ble\u adv”演示项目中。所以,现在的情况是,这些文件也被复制到ble/services文件夹中的“custom\ble\u service\u sample\u code”sdk中。

Sumary:添加到sdk中的一个演示项目中的新文件会自动在其他项目sdk中看到。所以,我知道最好在sdk之外添加自己的文件。是这样吗?

你好,普拉桑娜

PM\U对话框
离线
最后一次见到:2天11小时前
工作人员
已加入:2018-02-08 11:03
你好,普拉桑纳,

你好,普拉桑纳,

请按照本论坛门票中的说明操作:

https://support.dialog semiconductor.com/forums/post/dialog smartbond蓝牙低能耗-%E2%80%93软件/错误未定义参考函数

谢谢,下午好