错误:BLE_GATTS.C中的函数定义的未定义引用

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
10个帖子/ 0个新帖子
最后发表
prasanna
离线
最后看到:6个月1个星期前
加入:2020-09-29 56
错误:BLE_GATTS.C中的函数定义的未定义引用

嗨,对话框中,

通过在c++构建工具设置中包含services路径,我可以解决No such file or directory错误。但是现在,我遇到了另一个问题,在gatts.c中定义的函数没有定义引用。

我添加到项目中的custom_service.c文件具有从ble_gatts.c调用的函数。但是当我尝试构建时,我得到了函数“ble_gatts_read_cfm”和ble_gatts.c中定义的所有其他函数的错误未定义引用。我将headile ble_gats .h添加到custom_service.c并检查属性。我不明白是怎么回事。

提前谢谢。

问候,

Prasanna

设备:
PM_Dialog
离线
最后看到:1小时24分钟前
工作人员
加入:2018-02-08 11:03
嗨Prasanna,

嗨Prasanna,

你能分享一个截图吗?请尝试从“Project Explorer”窗口右键单击您的项目,然后单击索引 - >重建。之后,关闭并重新打开项目。

这是一个SDK文件,所以我假设您在include路径上出错了。

smarsnippets Studio的版本是什么?

谢谢,PM_Dialog

prasanna
离线
最后看到:6个月1个星期前
加入:2020-09-29 56
嗨对话框点,

嗨对话框点,

我使用的是Smartsnippets Studio版本v2.0.14。1749.请在下面找到错误信息。

/usr/lib/gcc/arm-none-eabi / 10.2.0 /../../../../ arm-none-eabi / bin / ld: / custom_service。/home/ prasana / diasem / sdk_10.0.10.118 /projects/dk_apps/demo /ble_adv/DA1469x-00-Debug_QSPI/../usr/lib/gcc/arm-none-eabi/10.2.0/../../../../ arm-none-eabi / bin / ld: / custom_service。o: in function ' mcs_notify_char_value': /home/ prasana / diasme / sdk_10.0.10.118 /projects/dk_apps/demo /ble_adv/DA1469x-00-Debug_QSPI/../custom_service.c:222: undefined reference to ' ble_gatts_send_event'

我按你说的从索引上重建项目。但是,我看到了同样的错误。我已经检查了我创建的文件custom_service.c的包含路径,其中api/include(因为ble_gatts.c在sdk/ble/api下)被添加到项目包含路径。另外,我想通知您,当我尝试单击(ctrl+左键单击)用于调用自定义service.c的函数时,它们指向ble_gats .h头文件。通常,它们应该指向ble_gatts.c中定义的函数。所以,我理解ble_gatts.c在某种程度上没有被编译器识别为链接。我怎么才能摆脱这个?

2)此外,大多数情况下,我必须在打开IDE时新鲜导入项目。如何解决这个问题?

问候,

Prasanna

PM_Dialog
离线
最后看到:1小时24分钟前
工作人员
加入:2018-02-08 11:03
嗨Prasanna,

嗨Prasanna,

对不起,我有点糊涂了。SDK示例或自定义代码中是否出现过这种情况?

您是否修改或更改了任何SDK文件的位置?

如果您正在启动新项目,请按照DA1469X教程启动项目

谢谢,PM_Dialog

prasanna
离线
最后看到:6个月1个星期前
加入:2020-09-29 56
你好PM_Dialog,

你好PM_Dialog,

我没有修改任何SDK文件的位置。我使用的例子ble_adv演示,并试图添加两个文件custom_service.c和custom_service.h,上面提到的错误发生时,构建项目。Ble_gatts.c没有被编译器识别。

问候,

Prasanna

PM_Dialog
离线
最后看到:1小时24分钟前
工作人员
加入:2018-02-08 11:03
嗨Prasanna,

嗨Prasanna,

请尝试在干净的SDK目录下删除.metadata文件夹。之后,导入SDK的ble_adv项目,构建它并验证所有工作正常。然后,导入您自己的文件。也请采取一些截屏步骤,你正在跟随并与我分享。

谢谢,PM_Dialog

prasanna
离线
最后看到:6个月1个星期前
加入:2020-09-29 56
你好PM_Dialog,

你好PM_Dialog,

我已经从SDK中删除了.metadata文件夹,导入了项目并尝试运行。但是,错误还是一样的。我附上了一些截图,可能会给你更多的见解。

问候,

Prasanna

附件:
PM_Dialog
离线
最后看到:1小时24分钟前
工作人员
加入:2018-02-08 11:03
嗨Prasanna,

嗨Prasanna,

我正在使用DA1469x自定义蓝牙服务我也不是阿贝尔来复制它的。请尝试使用handle_write_req()函数,该函数调用本软件示例中提供的ble_gatts_write_cfm()。

谢谢,PM_Dialog

prasanna
离线
最后看到:6个月1个星期前
加入:2020-09-29 56
亲爱的PM_Dialog,

亲爱的PM_Dialog,

我能解决这个错误。我想出了在特定的.c文件中使用的宏未定义和启用。我定义了宏,问题解决了。

谢谢你!

问候,

Prasanna

PM_Dialog
离线
最后看到:1小时24分钟前
工作人员
加入:2018-02-08 11:03
嗨Prasanna,

嗨Prasanna,

很高兴你把问题解决了,谢谢你的提示。

谢谢,PM_Dialog