簡體   English   中英

自制軟件+ opencv + libpng出錯

[英]Error with homebrew + opencv + libpng

在Mac OS Maverick上我已經安裝了OpenCV和brew install opencv

我創建了一個簡單的程序(從本教程復制)。 編譯工作正常,但在運行可執行文件時,我收到以下錯誤:

dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib
  Referenced from: /usr/local/lib/libopencv_highgui.2.4.dylib
  Reason: Incompatible library version: libopencv_highgui.2.4.dylib requires version 33.0.0 or later, but libpng16.16.dylib provides version 32.0.0
Trace/BPT trap: 5

我檢查了libpng是否通過brew install libpng正確安裝並運行brew upgrade以確保所有內容都是最新的。

運行locate libpng16.dylib返回:

/Applications/GIMP.app/Contents/Resources/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.10/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.12/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.13/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.15/lib/libpng16.16.dylib
/usr/local/lib/libpng16.16.dylib

任何想法?

最好的解決方案是完全卸載libpng並重新安裝它:

$ sudo brew uninstall libpng
$ sudo rm '/usr/local/bin/libpng-config'
$ for i in `brew link --overwrite --dry-run libpng`; do sudo rm $i; done
$ sudo brew install libpng

如果你需要安裝opencv:

$ sudo brew tap homebrew/science
$ sudo brew install opencv

Homebrew應該確保您安裝正確的依賴項。 但是,您可能在不同的路徑上安裝了多個版本的libpng16 看看...

/usr/lib
/opt/local/lib

如果您在這些位置找到任何版本的庫,那么它們可能會導致在程序啟動時加載錯誤的庫。 作為快速修復,您可以嘗試在命令行上的程序名稱之前鍵入DYLD_LIBRARY_PATH=/usr/local/lib 從長遠來看,您可能需要完全刪除沖突的版本。

這個答案適用於通過Conda安裝的OSX用戶,更具體地說是conda-forge通道(我不確定其他人)。

Conda最終在環境中安裝自己的libpng,你可以使用conda upgrade libpng進行更新。

我想這基本上是conda-forge上的opencv配方的一個錯誤。

暫無
暫無

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

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