UnsatisfiedLinkError Использование JavaCV в Eclipse на Mac - PullRequest
4 голосов
/ 12 февраля 2012

Я уверен, что это будет своего рода проблема ПУТИ, но я не уверен, где я ошибаюсь. Я пытаюсь заставить JavaCV работать в моем проекте в Eclipse, чтобы я мог выполнить некоторое обнаружение окружности на изображениях, но Eclipse выдает следующее исключение при попытке запустить один из примеров проектов:

java.lang.UnsatisfiedLinkError

Я пытался следовать инструкциям, данным по адресу: http://code.google.com/p/javacv/

У меня есть javacv.jar и jna.jar в BuildPath моего проекта. Что мне нужно сделать, чтобы добавить правильные файлы к правильным путям, чтобы заставить работать JavaCV?

Я попытался добавить файлы jar в $ CLASSPATH, но получил ту же ошибку. Я скачал и установил OpenCV, не уверен, что из этой папки мне нужно добавить в $ PATH. Любая помощь приветствуется.

Ответы [ 4 ]

2 голосов
/ 19 июня 2012

Можете ли вы положить всю ошибку, что через в вашем приложении. Иногда проблема может быть в несовместимости двух версий javacv и opencv. Поэтому попробуйте проверить, есть ли у вас совместимые версии на них.

2 голосов
/ 19 июня 2012

Я также получаю то же исключение при попытке запустить свое первое приложение javacv.Я также пробовал разные вещи и, наконец, обнаружил, что причиной этого исключения являются несовместимые версии.Так что, возможно, дело и в вашей проблеме.

2 голосов
/ 12 февраля 2012

Ошибка UnsatisfiedLink означает, что один или несколько файлов собственной библиотеки не могут быть связаны с вашей программой. Это чаще всего вызвано тем, что файлы собственной библиотеки не находятся в том месте, где ищет JVM.

Подробнее см. Раздел 2.7 из http://java.sun.com/docs/books/jni/html/start.html.

1 голос
/ 11 февраля 2013

Я также столкнулся с подобной проблемой, я пытался собрать OpenCV из исходного кода, а также с помощью MacPorts. Тогда я попытался установить собственные пути к библиотекам в Eclipse, чтобы указать место, где был построен OpenCV, но это не работает для меня. Наконец, я решил проблему, установив OpenCV через Macports, который устанавливает все файлы .dylibs по пути / opt / local / lib. После этого я выполнил следующий сценарий оболочки (данный на http://code.google.com/p/javacv/wiki/HowToMakeAnApplet)

BADPATH=/opt/local/lib 
for f in libopencv*2.4.dylib; do install_name_tool $f -id @rpath/$f \
-add_rpath /usr/local/lib/ -add_rpath /opt/local/lib/ -add_rpath @loader_path/. \
-change $BADPATH/libopencv_core.2.4.dylib @rpath/libopencv_core.2.4.dylib \
-change $BADPATH/libopencv_calib3d.2.4.dylib @rpath/libopencv_calib3d.2.4.dylib \
-change $BADPATH/libopencv_features2d.2.4.dylib @rpath/libopencv_features2d.2.4.dylib \
-change $BADPATH/libopencv_flann.2.4.dylib @rpath/libopencv_flann.2.4.dylib \
-change $BADPATH/libopencv_gpu.2.4.dylib @rpath/libopencv_gpu.2.4.dylib \
-change $BADPATH/libopencv_highgui.2.4.dylib @rpath/libopencv_highgui.2.4.dylib \
-change $BADPATH/libopencv_imgproc.2.4.dylib @rpath/libopencv_imgproc.2.4.dylib \
-change $BADPATH/libopencv_legacy.2.4.dylib @rpath/libopencv_legacy.2.4.dylib \
-change $BADPATH/libopencv_ml.2.4.dylib @rpath/libopencv_ml.2.4.dylib \
-change $BADPATH/libopencv_nonfree.2.4.dylib @rpath/libopencv_nonfree.2.4.dylib \
-change $BADPATH/libopencv_objdetect.2.4.dylib @rpath/libopencv_objdetect.2.4.dylib \
-change $BADPATH/libopencv_photo.2.4.dylib @rpath/libopencv_photo.2.4.dylib \
-change $BADPATH/libopencv_video.2.4.dylib @rpath/libopencv_video.2.4.dylib; done

После запуска приведенного выше сценария я просто создал пример проекта JavaCV (использовал пример кода, указанный на http://www.cnblogs.com/ljsspace/archive/2011/08/05/2128948.html), и смог успешно запустить его из затмения, не задавая другие пути.

...