You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 10下Onboard-SDK项目CMakeList.txt编写及make链接报错解决

大疆Onboard-SDK telemetry示例编译undefined reference错误解决方法

问题根因

你遇到的undefined reference报错属于链接阶段符号缺失,核心原因分为两类:一是本地安装的libdjiosdk-core.a版本和当前使用的Onboard-SDK示例源码版本不匹配,二是链接时缺少OSDK依赖的平台抽象层、工具链相关静态库。

解决步骤

  • 第一步:清理旧版本SDK残留
    删除之前安装的OSDK库文件,避免版本冲突:
sudo rm -rf /usr/local/lib/libdjiosdk*
sudo rm -rf /usr/local/include/djiosdk*
  • 第二步:重新编译安装匹配版本的OSDK核心库
    回到/home/pi/Onboard-SDK根目录,重新编译安装核心库,确保版本和当前使用的示例代码完全一致,报错涉及X5S相关功能,需要开启进阶传感编译参数:
cd /home/pi/Onboard-SDK
rm -rf build && mkdir build && cd build
cmake .. -DADVANCED_SENSING=ON
make -j4
sudo make install
  • 第三步:补全CMakeLists.txt的链接依赖
    当前配置仅链接了djiosdk-core,缺少OSDK依赖的平台、工具层库,修改target_link_libraries配置段:
# 原配置:target_link_libraries(${PROJECT_NAME} djiosdk-core)
# 修改为:
target_link_libraries(${PROJECT_NAME} djiosdk-core djiosdk-platform djiosdk-utility pthread)
  • 第四步:重新编译示例
    清空telemetry目录下的旧编译缓存,重新执行编译流程:
cd /home/pi/Onboard-SDK/sample/platform/telemetry
rm -rf build && mkdir build && cd build
cmake ..
make

额外排查点

  • 编译示例时确保ONBOARDSDK_SOURCE的路径和安装核心库所用的源码路径一致,不要混用本地源码路径和/usr/local/include路径
  • 树莓派编译时如果出现内存不足报错,将make -j4改为make使用单线程编译

内容的提问来源于stack exchange,提问作者user14611286

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 03:06:05