Homebrew OS X OpenCV - 在另一台 Mac 上运行时寻找 dylib

Posted

技术标签:

【中文标题】Homebrew OS X OpenCV - 在另一台 Mac 上运行时寻找 dylib【英文标题】:Homebrew OS X OpenCV - looking for dylib when running on another Mac 【发布时间】:2018-08-15 14:30:04 【问题描述】:

我有一个跨平台(Windows + Mac)应用程序,使用 QT 和 C++ 库构建,它使用 OpenCV。我之前使用的是在 Mac 上下载和编译的 OpenCV 版本,但决定尝试使用 homebrew 版本来简化在开发机器上的安装。

我做了brew install opencv --with-contribbrew link opencv,并设法让程序与/usr/local/lib 中的库链接并运行。

问题是,当我在另一台 Mac 上安装它时,当我尝试运行它时程序崩溃,提示:Library not loaded: /usr/local/Cellar/ilmbase/2.2.1/lib/libIex-2_2.23.dylib

我不知道该怎么办。我不是 Mac 专家,当然也不是 Homebrew 专家。我应该回去自己编译OpenCV,还是可以解决这个问题?

谢谢。

【问题讨论】:

您需要将依赖库添加到您的应用程序包中。 (这可能是动态与静态链接问题,所以问题是:我可以通过自制软件获得静态版本的库吗?如果没有,我可以将 OpenCV 中的 dylib 与可执行文件放在一起吗?我怎么知道我需要哪些?) 您当然可以构建静态版本的 OpenCV。我使用 CMake 和 Hunter 来做到这一点,因为它消除了很多痛苦:github.com/ruslo/hunter 谢谢,理查德。 Hunter 听起来很有趣,尽管它听起来也需要一些阅读才能开始工作。任何快速提示(或代码)来获取和制作静态 OpenCV? 这是一个我和儿子一起玩的沙盒 - 它显示了 Hunter 和 polly(工具链)的基本用法。你可以在这里浏览可用的包:github.com/hunter-packages 【参考方案1】:

我遇到了同样的问题,但我解决了。 homebrew 安装了最新的 opencv 和依赖项。 openexr 和 ilmbase 也安装了最新版本。但 opencv.jar 引用了特定版本的库。(例如 libIex-2_2.23.dylib) 因此,您将安装 ilmbase 版本 2.2.X。而不是解决图书馆问题。

https://github.com/Homebrew/homebrew-core/blob/master/Formula/ilmbase.rb

此链接是 ilmbase 安装公式。您可以退出 v.2.2 公式提交。 然后卸载并重新安装 ilmbase v.2.2。

【讨论】:

以上是关于Homebrew OS X OpenCV - 在另一台 Mac 上运行时寻找 dylib的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 上安装 Homebrew

Mac OS X 包管理工具 Homebrew 安装与使用

使用 Homebrew 在 OS X 上更新 OpenSSL

sh 翻译:“OS X 10.10 Yosemite本地开发环境,Apache,PHP和MySQL与Homebrew”:0更新Homebrew

markdown 如何修复OS X El Capitan中的Homebrew权限问题?

ini 使用Homebrew的OS X的Nginx虚拟主机设置