【发布时间】:2024-01-29 21:15:02
【问题描述】:
我有一个跨平台(Windows + Mac)应用程序,使用 QT 和 C++ 库构建,它使用 OpenCV。我之前使用的是在 Mac 上下载和编译的 OpenCV 版本,但决定尝试使用 homebrew 版本来简化在开发机器上的安装。
我做了brew install opencv --with-contrib 和brew 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