簡體   English   中英

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

我一直在嘗試使OpenCV(3.4.0)在具有C ++的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;
}

該項目構建良好,但是當我嘗試運行它時,出現以下錯誤:

dyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib

我一直在尋找,我唯一能找到的相關問題是與PHP有關的。 任何向正確方向提供幫助或指示的方法都將受到高度贊賞! 提前謝謝了!

OpenCV需要libjpeg庫來讀取jpg文件,並且在運行程序時會動態加載該文件(如DLL)。 該程序在預定義的路徑/usr/local/opt/jpeg/lib/libjpeg.9.dylib搜索該動態庫,很可能您沒有該文件。

第一步是在您的計算機上找到該庫,您可以通過運行以下命令來完成:

sudo find / -name 'libjpeg.*'

如果什么也沒找到(就像我發生的那樣),您有幾種選擇:從源代碼構建庫,找到預構建的庫並下載,或者從程序包管理器(如brew或MacPorts)安裝它。 可能我會先嘗試沖泡。 注意:您可能需要libjpeg庫的版本9。

brew install libjpeg命令對我brew install libjpeg (您需要先安裝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) *

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM