Movesense核心库缺失sbem/Sbem.hpp等文件的技术求助
Movesense SensorSoftware 2.2 离线GATT应用头文件缺失问题解决建议
问题描述
我正在开发适配SensorSoftware 2.2版本的离线GATT应用修改版,但Movesense核心库中找不到以下两个头文件:
#include "platform/bsp/rtc.hpp" #include "sbem/Sbem.hpp"
这两个引用在官方示例应用里也有使用,我想知道有没有解决方案,或者这些头文件是否还能在其他路径找到(该离线GATT传感器应用已有正式发布版本)。
已尝试操作
- 重新克隆Movesense代码仓库
- 尝试用
#include "sbem_types.h"、#include "movesense_time/resources.h"和#include "sbem-code/sbem_definitions.h"替代原头文件
但编译仍报错:
/movesense/samples/win_ecglogger_app/ECGIMULoggerapp.cpp:8:10: fatal error: sbem/Sbem.hpp: No such file or directory
8 | #include "sbem/Sbem.hpp"
解决方案建议
1. 匹配对应版本的Movesense仓库
SensorSoftware版本与Movesense核心库版本强绑定,务必确保你克隆的仓库是SensorSoftware 2.2对应的特定分支/标签,而非默认主分支。不同版本的库文件结构会有调整,主分支可能已移除这些旧头文件。
2. 调整头文件引用与代码适配
针对platform/bsp/rtc.hpp
用#include "movesense_time/resources.h"替代后,需同步调整代码中的API调用:原rtc.hpp的RTC功能已整合到时间资源模块,改用MovesenseTime相关接口实现。
针对sbem/Sbem.hpp
SensorSoftware 2.2中SBEM相关实现已迁移至sbem-code目录,需完成两步操作:
- 检查项目CMakeLists.txt,确保
include_directories中添加了sbem-code目录 - 用
#include "sbem_definitions.h"+#include "sbem_types.h"组合替代原引用,同时调整代码中依赖Sbem.hpp的类、方法调用——原Sbem命名空间下的接口,现在直接使用sbem_definitions.h中定义的结构体与宏。
3. 参考官方发布版本的代码结构
既然该离线GATT应用已有发布版本,直接对比发布版本的代码:
- 查看发布版本中这两个头文件的替代方案
- 复制发布版本对应的CMake配置与头文件引用方式,确保项目配置完全一致
4. 清理编译缓存后重新构建
替换头文件后,执行以下命令清理缓存,避免旧缓存导致路径错误:
rm -rf build/ cmake --build .
内容的提问来源于stack exchange,提问作者Jonathan Posthuma
相关产品推荐
相关产品推荐

