【问题标题】:How do I fix: /usr/bin/ld: cannot find -ldjiosdk-core如何修复:/usr/bin/ld: 找不到 -ldjiosdk-core
【发布时间】:2020-05-17 17:45:01
【问题描述】:

我在 Raspberry Pi 上下载并安装了 DJI-OSDK,并能够在 DJI Assistant 模拟上运行示例。但是,当我尝试制作和构建自己的项目(使用 CMake)时,我遇到了问题:

/usr/bin/ld: cannot find -ldjiosdk-core

CMake 文件包含这一行:

add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} djiosdk-core)

我的问题是:

  1. 如何链接 djiosdk-core 库?
  2. 如何在 OSDK 中创建自己的项目以使其正确构建?

我正在使用带有 RPi 的 N3。

我也跑了:$ dpkg -L djiosdk-core 输出:

dpkg-query: package 'djiosdk-core' is not installed
Use dpkg --contents (= dpkg-deb --contents) to list archive files contents.

【问题讨论】:

    标签: cmake linker-errors raspbian dji-sdk


    【解决方案1】:

    可能的原因:

    1. 你根本没有 libdjiosdk-core
    2. 超出系统运行路径
    3. 它有不同的名字

    尝试搜索它:

    $ find . -type f -name "*djiosdk-core*"

    查找包名:

    $ apt-cache search djiosdk

    然后列出所有包的文件:

    $ dpkg-query -L [package_name]

    如果您没有此开发人员库,请从源代码安装此 SDK(请参阅其 wiki)

    【讨论】:

      【解决方案2】:

      错误:

      /usr/bin/ld: cannot find -ldjiosdk-core
      

      是一个链接器错误,它表明链接器确实知道在哪里可以找到djiosdk-core 库。如果此库在您的典型系统路径中,则链接器将不知道如何找到它。因此,您必须在 target_link_libraries() CMake 命令中提供库的完整路径:

      add_executable(${PROJECT_NAME} ${SOURCE_FILES})
      target_link_libraries(${PROJECT_NAME} PUBLIC /your/path/to/libs/libdjiosdk-core.so)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-07
        • 2011-07-16
        • 2012-05-17
        • 2020-04-14
        • 2012-03-26
        • 2018-12-13
        • 2015-09-22
        • 2020-01-19
        相关资源
        最近更新 更多