Как мне исправить: / usr / bin / ld: не могу найти -ldjiosdk-core - PullRequest
0 голосов
/ 01 февраля 2020

Я скачал и установил DJI-OSDK на свой Raspberry Pi и смог запустить сэмплы на симуляторе 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, чтобы он правильно создавался?

Я использую N3 с RPi.

Я также выполнил: $ dpkg -L djiosdk-core с выводом:

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

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

Ошибка:

/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)
0 голосов
/ 01 февраля 2020

Возможные причины:

  1. У вас вообще нет libdjiosdk-core
  2. Нет системного пути
  3. У него другое имя

Попробуйте найти:

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

Найдите имя пакета:

$ apt-cache search djiosdk

, затем перечислите все файлы пакета:

$ dpkg-query -L [package_name]

Если у вас нет этой библиотеки разработчика, установите этот SDK из исходного кода (см. Его вики)

...