没有加载dyld原因:找不到映像libopencv_core.2.4.dylib [英] dyld not loaded Reason: image not found libopencv_core.2.4.dylib

查看:197
本文介绍了没有加载dyld原因:找不到映像libopencv_core.2.4.dylib的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Objective C和Xcode还是很陌生,但是我刚刚完成了一个使用openCV libopencv_core.2.4.2.dylib的小应用程序.

I'm still quite new to Objective C and Xcode, but I just finished a small app that uses the openCV libopencv_core.2.4.2.dylib.

当我去另一台计算机上打开最终的内置应用程序时,OS X抛出了这个错误:

When I went to open the final built app on another machine, OS X threw me this error:

Dyld Error Message:   Library not loaded: */libopencv_core.2.4.dylib  
Referenced from: /Users/USER/Desktop/my
app.app/Contents/MacOS/my app   
Reason: image not found

为什么我的应用程序在这里寻找2.4而不是2.4.2?

Why is my app looking for 2.4 instead of 2.4.2 here?

我已经检查过的内容:

我添加了一个新的构建阶段->,以便将libopencv_core.2.4.2.dylib复制到应用程序包中(通过Xcode中的"Copy Bundle Resources")-libopencv_core.2.4.2.dylib现在位于我的app.app/Resources

I added a new build phase -> so that libopencv_core.2.4.2.dylib is copied to the app package (via "Copy Bundle Resources" in Xcode) - libopencv_core.2.4.2.dylib now lies in my app.app/Resources

我想念什么?我是否设置了更多的图书馆搜索路径或类似路径?

What did I miss? Do I have so set some more library search paths or similar?

我还做了什么:

install_name_tool -id "@executable_path/../Frameworks/libopencv_core.2.4.2.dylib" libopencv_core.2.4.2.dylib

将dylib复制到Frameworks目录也不起作用:

Copying the dylib to the Frameworks directory doesn't work either:

Library not loaded: @executable_path/../Frameworks/libopencv_core.2.4.2.dylib

不知道现在要做什么-dylib 在我的应用程序的Frameworks目录中...

Don't know what to do now - the dylib is in the Frameworks directory of my app...

在二进制文件上使用otool -L可以给我:

Using otool -L on the binary gives me:

/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
    @loader_path/../Frameworks/libopencv_core.2.4.2.dylib (compatibility version 2.4.0, current version 2.4.2)
    @loader_path/../Frameworks/libopencv_highgui.2.4.2.dylib (compatibility version 2.4.0, current version 2.4.2)
    @loader_path/../Frameworks/libopencv_imgproc.2.4.2.dylib (compatibility version 2.4.0, current version 2.4.2)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.11.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.1.0)
    /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData (compatibility version 1.0.0, current version 407.7.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1187.33.0)

推荐答案

我找到了一个更好的解决方案:在Xcode中重新编译openCV并在编译设置中为编译的每个.dylib设置@executable_path/../Frameworks-现在为.dylibs自己总是知道他们在哪里".

I found a better solution: recompiling openCV in Xcode and set the @executable_path/../Frameworks in the build settings, for every .dylib you compile - now the .dylibs themselves always "know where they are".

这篇关于没有加载dyld原因:找不到映像libopencv_core.2.4.dylib的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆