我收到以下问题:
/Users/luke/Desktop/trainHOG/trainhog ; exit;
dyld: Library not loaded: lib/libopencv_core.3.0.dylib
Referenced from: /Users/luke/Desktop/trainHOG/trainhog
Reason: image not found
Trace/BPT trap: 5
logout
我正在使用运行OSX v10.9.5并使用openCV 3.0 alpha的Mac。
有问题的库肯定在文件夹中。我已经尝试删除它并将其粘贴回文件夹,我已经完全删除并重新安装了openCV和macports,我尝试了export DYLD_LIBRARY_PATH = "path to dynamic libs here.."
,但没有任何效果。我甚至多次重启了我的电脑!
有没有人有任何进一步的建议?我没有想法
答案 0 :(得分:3)
OpenCV 3.3 OSX 10.13 拳头有一个测试,你可以使用clang ++ -o a -I ./include -L ./lib -lopencv_core.your.version 那么你可以生成可执行文件a,运行它,如果有错误按摩。 当你链接时,你会发现错误原因无法找到lib。
如果你想解决终端上的错误 你可以使用导出DYLD_LIBRARY_PATH =你的/ lib:$ DYLD_LIBRARY_PATH 如果你想解决Xcode上的错误 在构建页面中,转到“运行路径搜索路径” 添加lib路径
答案 1 :(得分:2)
如果您使用
export DYLD_LIBRARY_PATH = "path to dynamic libs here.."
是否适用于您的程序环境? 您可以使用
检查正在运行的进程的环境变量ps -p <pid> -wwwE
这有帮助吗?
答案 2 :(得分:1)
某些版本的OpenCV的CMake配置文件似乎是一个错误,它错误地记录了安装的dylib中的相对路径,相当容易修复。
This answer on answers.opencv.org解决了这个问题。在OpenCVModule.cmake
和CMakeLists.txt
的每个实例中,将INSTALL_NAME_DIR lib
替换为INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib
。
答案 3 :(得分:0)
如果您遇到此问题:
dyld:未加载库:* .dylib ...原因:未找到合适的图像。
表示您的* .dylib文件未使用Apple iD开发帐户签名,并且 有两种解决方法:
1)正确的方法:使用以下命令对所有文件进行代码签名:
codesign -f -s "Mac Developer: YOURDEVELOPEREMAIL" /usr/local/opt/*/lib/*.dylib
2)临时方式(直到您没有部署到App Store之前):在Xcode中,转到:
[YourProjectFile]
-> [YourTargetFile]
-> "Signing & Capabilities"
->并启用"Disable Library Validation"
完成:D