bud*_*ude 3 c++ macos opencv clion
我一直在尝试使用 C++ 让 OpenCV (3.4.0) 在 MacOS (10.11.6) 上工作。
我尝试了各种安装方法,但按照本指南最终“成功”。
我现在尝试在 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;
}
Run Code Online (Sandbox Code Playgroud)
该项目构建得很好,但是当我尝试运行它时,出现以下错误:
dyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib
Run Code Online (Sandbox Code Playgroud)
我环顾四周,唯一能找到的相关问题是与 PHP 有关的。任何形式的帮助或正确方向的指示都将受到高度赞赏!提前谢谢了!
OpenCV 需要libjpeg库来读取您的 jpg 文件,并且当您运行程序时它会动态加载(如 DLL)。该程序在预定义路径 - 中搜索该动态库/usr/local/opt/jpeg/lib/libjpeg.9.dylib,并且很可能那里没有该文件。
第一步是在您的计算机上找到该库,您可以通过运行以下命令来完成此操作:
sudo find / -name 'libjpeg.*'
Run Code Online (Sandbox Code Playgroud)
如果没有找到任何内容(就像发生在我身上的情况一样),您有多种选择:从源代码构建库,找到预构建的库并下载它,或者从包管理器(如brew或MacPorts)安装它。也许我会先尝试酿造。注意:您可能需要 libjpeg 库的版本 9。
brew install libjpeg命令对我有用。(您需要先安装brew )。
第2步:当你获取库时,你需要确保程序可以找到它。通常有一种方法可以覆盖硬编码路径,例如/usr/local/opt在构建时使用 OpenCV 构建脚本中某处的某些构建脚本变量。一种更简单的方法可能是将其安装在预期的位置(位于/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) *
| 归档时间: |
|
| 查看次数: |
5732 次 |
| 最近记录: |