dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS
Posted
技术标签:
【中文标题】dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS【英文标题】:dyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS 【发布时间】:2018-05-10 12:31:02 【问题描述】:我一直在尝试使用 C++ 使 OpenCV (3.4.0) 在 MacOS (10.11.6) 上运行。
我尝试了各种安装方式,但最终按照this 指南“成功”。
我现在尝试在 CLion 中运行以下示例项目:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( )
Mat image;
image = imread("image1.jpg", CV_LOAD_IMAGE_COLOR);
waitKey(0);
return 0;
项目构建良好,但是当我尝试运行它时,出现以下错误:
dyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib
我一直在环顾四周,唯一能找到的相关问题与 php 有关。 任何形式的帮助或正确方向的指针都非常感谢! 非常感谢!
【问题讨论】:
【参考方案1】:OpenCV 需要libjpeg 库来读取您的 jpg 文件,并且在您运行程序时动态加载(如 DLL)。程序会在预定义的路径 - /usr/local/opt/jpeg/lib/libjpeg.9.dylib
中搜索该动态库,并且很可能您没有该文件。
第一步是在你的电脑上找到这个库,你可以通过运行:
sudo find / -name 'libjpeg.*'
如果什么都没找到(就像我遇到的那样),您有多种选择:从源代码构建库,找到一个预构建的库并下载它,或者从包管理器(如 brew 或 MacPorts)安装它.可能我会先尝试 brew 。注意:您可能需要版本 9 的 libjpeg 库。
brew install libjpeg
命令对我有用。 (你需要先install brew)。
第2步:获取库时,需要确保程序可以找到它。通常有一种方法可以在构建时使用 OpenCV 构建脚本中的某个构建脚本变量来覆盖像 /usr/local/opt
这样的硬编码路径。一种更简单的方法可能是将其安装在预期的位置(/usr/local/opt
),或者从该路径到真实位置建立符号链接。
我使用过 brew,它实际上将它安装在预期的路径:
bash-3.2$ pwd
/usr/local/opt/libjpeg/lib
bash-3.2$ ls
libjpeg.9.dylib libjpeg.a libjpeg.dylib pkgconfig
bash-3.2$ brew info libjpeg
jpeg: stable 9c (bottled)
Image manipulation library
http://www.ijg.org
/usr/local/Cellar/jpeg/9c (21 files, 724.6KB) *
【讨论】:
哇!感谢battlmonstr提供了一个非常好的答案!运行 find 命令我实际上得到了很多结果......似乎它只是不在正确的地方!我什至有来自 hombrew 的相同库,但在不同的地方......我将如何将符号链接指向真实位置(我怀疑你的意思是所需动态库已经存在的位置之一)?sudo ln -s "<existing path>" "<new link path>"
需要在 mac 上使用“sudo”来获取 /usr/local 等位置
你是我的英雄!非常感谢!完美运行!以上是关于dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS的主要内容,如果未能解决你的问题,请参考以下文章
php -v 返回 dyld:库未加载:/usr/local/opt/readline/lib/libreadline.7.dylib
dyld:库未加载:/usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib、php-fpm、php5.6
dyld:库未加载:VSCode终端中的/usr/local/opt/icu4c/lib/libicui18n.63.dylib
dyld:库未加载:/usr/local/opt/icu4c/lib/libicui18n.62.dylib 在 Mac 上使用 brew 安装节点后运行 php 错误