Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javacv+;约塞米蒂+;Eclipse:项目未运行,java.lang.UnsatifiedLinkError_Java_Eclipse_Opencv - Fatal编程技术网

Javacv+;约塞米蒂+;Eclipse:项目未运行,java.lang.UnsatifiedLinkError

Javacv+;约塞米蒂+;Eclipse:项目未运行,java.lang.UnsatifiedLinkError,java,eclipse,opencv,Java,Eclipse,Opencv,好吧,这个问题已经面临过好几次了,但在这种情况下我无法解决它。 几天前,我把我的mac升级到了约塞米蒂。在此之前,项目开始没有问题!(我的意思是,小牛操作系统) Mac是去年支持视网膜的13.3英寸 我正在用Java实现一个人脸识别器,所以我需要OpenCV的API和Javacv的包装器(我使用的是0.9版本)。按照Javacv/Javacpp开发人员的指示,我刚刚链接到我的eclipse/java项目:Javacv.jar、Javacpp.jar和opencv-macosx-x86_64.ja

好吧,这个问题已经面临过好几次了,但在这种情况下我无法解决它。 几天前,我把我的mac升级到了约塞米蒂。在此之前,项目开始没有问题!(我的意思是,小牛操作系统) Mac是去年支持视网膜的13.3英寸

我正在用Java实现一个人脸识别器,所以我需要OpenCV的API和Javacv的包装器(我使用的是0.9版本)。按照Javacv/Javacpp开发人员的指示,我刚刚链接到我的eclipse/java项目:Javacv.jar、Javacpp.jar和opencv-macosx-x86_64.jar。eclipse告诉我一切都很好,但当我尝试运行它时,我得到:

Init, please wait...
Creating detector...
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib: dlopen(/Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib, 1): Library not loaded: @rpath/libopencv_core.2.4.dylib
  Referenced from: /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib
  Reason: no suitable image found.  Did find:
    /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/./libopencv_core.2.4.dylib: malformed mach-o image: load command #12 length (0) too small in /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/./libopencv_core.2.4.dylib
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1119)
    at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
    at org.bytedeco.javacpp.Loader.load(Loader.java:410)
    at org.bytedeco.javacpp.Loader.load(Loader.java:353)
    at org.bytedeco.javacpp.opencv_core.<clinit>(opencv_core.java:10)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:340)
    at org.bytedeco.javacpp.Loader.load(Loader.java:385)
    at org.bytedeco.javacpp.Loader.load(Loader.java:353)
    at org.bytedeco.javacpp.opencv_objdetect$CascadeClassifier.<clinit>(opencv_objdetect.java:618)
    at javacvOpenCvCaptureFrames.Detector.<init>(Detector.java:22)
    at javacvOpenCvCaptureFrames.CaptureFrame.main(CaptureFrame.java:52)
Caused by: java.lang.UnsatisfiedLinkError: /private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016/libjniopencv_core.dylib: dlopen(/private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016/libjniopencv_core.dylib, 1): Library not loaded: @rpath/libopencv_core.2.4.dylib
  Referenced from: /private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016/libjniopencv_core.dylib
  Reason: no suitable image found.  Did find:
    /private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016/./libopencv_core.2.4.dylib: malformed mach-o image: load command #12 length (0) too small in /private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016/./libopencv_core.2.4.dylib
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1814)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1083)
    at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:524)
    ... 10 more
Init,请稍候。。。
正在创建检测器。。。
线程“main”java.lang.unsatifiedlinkerror:/Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib中出现异常:dlopen(/Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libiopencv_core.dylib,1):未加载库:@rpath/libopenu core.2.dycv
引用自:/Users/*/Desktop/javacv bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib
原因:未找到合适的图像。未找到:
/Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64//libopencv_core.2.4.dylib:格式错误的mach-o图像:load命令长度(0)在/Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64//libopencv core.2.4.dylib中太小
位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
位于java.lang.Runtime.loadLibrary0(Runtime.java:870)
位于java.lang.System.loadLibrary(System.java:1119)
位于org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
位于org.bytedeco.javacpp.Loader.load(Loader.java:410)
位于org.bytedeco.javacpp.Loader.load(Loader.java:353)
位于org.bytedeco.javacpp.opencv_core.(opencv_core.java:10)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:340)
位于org.bytedeco.javacpp.Loader.load(Loader.java:385)
位于org.bytedeco.javacpp.Loader.load(Loader.java:353)
位于org.bytedeco.javacpp.opencv_objdetect$CascadeClassifier(opencv_objdetect.java:618)
位于javacvOpenCvCaptureFrames.Detector。(Detector.java:22)
位于javacvOpenCvCaptureFrames.CaptureFrame.main(CaptureFrame.java:52)
由以下原因引起:java.lang.unsatifiedlinkerror:/private/var/folders/1h/39DK7V3N4NG0PHG9LDWNCSH0000GN/T/javacpp8317818567016/libjniopencv_core.dylib:dlopen(/private/var/folders/1h/39DK7V3N4NG0PHG9LDWNCSH0000GN/T/javacpp8317818567016/libjniopencv_core.dylib,1):库未加载:@rpath/libopencv_core.2.4.dylib
引用自:/private/var/folders/1h/39DK7V3N4NG0PHG9LDWNCSH0000GN/T/javacpp8317818567016/libjniopencv_core.dylib
原因:未找到合适的图像。未找到:
/private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016//libopencv_core.2.4.dylib:格式错误的mach-o图像:加载命令#12长度(0)在/private/var/folders/1h/39dk7v3n4ng0phg9ldwnccsh0000gn/T/javacpp8317818567016//libopencv core.2.4.dylib中太小
位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1814)
位于java.lang.Runtime.load0(Runtime.java:809)
位于java.lang.System.load(System.java:1083)
位于org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:524)
…还有10个
我觉得奇怪的是“格式错误的mach-o图像:加载命令#12长度(0)太小”…这是什么意思?我已经多次重新下载javacv包,但都是一样的

任何帮助都是有用的,谢谢


Kevin:)

0.9二进制图像中存在的opencv库已损坏/格式不正确。它可能在mavericks上没有损坏,但我没有检查它的系统。我手动重建了opencv,并用重建的dylibs重新打包了jar,它似乎可以工作;但我可能遗漏了一些东西。Samuel Audet先生(javacv/javacpp的创建者和开发者)重建包,至少对我来说,它们现在工作得很好!很高兴知道这是可用包中的一个暂时异常。@Kevin我们从哪里可以得到重建包?很抱歉,这里耽搁了: