[英]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.