2012-02-12 4 views
4

Я уверен, что это будет какая-то проблема PATH, но я не уверен, где я ошибаюсь. Я пытаюсь получить JavaCV работает в моем проекте в Eclipse, так что я могу сделать некоторые обнаружения круга на изображениях, но получаю следующее исключение брошенного Затмений при попытке запустить один из примеров проектов:UnsatisfiedLinkError Использование JavaCV в Eclipse на Mac

java.lang.UnsatisfiedLinkError 

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

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

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

ответ

2

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

Дополнительную информацию см. В разделе 2.7 от http://java.sun.com/docs/books/jni/html/start.html.

2

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

2

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

1

Я также столкнулся с подобной проблемой, я попытался построить OpenCV из источника, а также с помощью MacPorts. Чем я попробовал настроить корневые пути библиотеки в затмении, чтобы указать на место, где был создан OpenCV, но это не работает для меня. Наконец, я решил проблему, установив OpenCV через Macports, который устанавливает все .dylib в пути «/ 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) и был в состоянии запустить его успешно из затмение без каких-либо других путей.

Смежные вопросы