Ошибка Java JNI OpenKinect: libOpenKinect.so: неопределенный символ: libusb_init - PullRequest
0 голосов
/ 08 декабря 2011

Я получаю следующую ошибку при создании Java JNI Wrapper для OpenKinect :

java: symbol lookup error: 
  /home/richard/libfreenect/wrappers/java/dist/libOpenKinect.so: 
  undefined symbol: libusb_init

Я использую Ubuntu Manual Install со следующими исключениями:

  • git: //github.com/michael-nischt/libfreenect.git вместо git: //github.com/OpenKinect/libfreenect.gitworks, поскольку оболочка JNI не интегрирована в основной дистрибутив.
  • freeglut3-dev вместо libglut3-dev.

Я могу успешно запустить glview.

Я изменяю скрипт build.sh так, чтобы LIBFREENET_LIBRARY ссылался на правильный каталог. Затем сборка jar успешно компилируется. Файл примера компилируется правильно.

javac -d ./ -classpath .:./dist/OpenKinect.jar ./OpenKinect/src/Example.java

Я получаю ошибку при запуске:

java -Djava.library.path=./dist -classpath .:./dist/OpenKinect.jar Example

Кто-нибудь еще сталкивался с этой ошибкой?

Кто-нибудь смог решить эту ошибку?

1 Ответ

0 голосов
/ 17 марта 2016

Проверьте зависимости общей библиотеки libOpenKinect.so:

ldd /home/richard/libfreenect/wrappers/java/dist/libOpenKinect.so/libsample.so 

Вы должны найти строку с libusb-1.0.so.0.Если нет, это означает, что библиотека не является ссылкой на libusb.Решение состоит в том, чтобы перекомпилировать разделяемую библиотеку с флагом -lusb-1.0:

...