【问题标题】:OpenCV in Qt on Mac, How to Package?Mac 上 Qt 中的 OpenCV,如何打包?
【发布时间】:2021-06-16 16:54:33
【问题描述】:

我使用的 OpenCV 是通过 brew 安装的:

brew install opencv

这是我的 .pro 文件配置:

INCLUDEPATH +=  /usr/local/include/opencv4 \
                    /usr/local/include/opencv4/opencv2
LIBS += /usr/local/lib/libopencv_*

我使用macdeployqt 命令:

macdeployqt testopencv.app

此时,该应用无法在其他 Mac OS 上打开。

所以,我使用otool -L 命令查看路径:

otool -L testopencv.app/Contents/MacOS/testopencv

我将我使用的所有 OpenCV 库移到了应用程序的内部, 并将所有 OpenCV 路径更改为应用程序内部路径。

就这样。

cp /usr/local/opt/opencv/lib/libopencv_core.4.5.dylib /Users/plf/qt/testopencv/testopencv.app/Contents/Frameworks/
install_name_tool -change /usr/local/opt/opencv/lib/libopencv_core.4.5.dylib @executable_path/../Frameworks/libopencv_core.4.5.dylib testopencv.app/Contents/MacOS/testopencv

直到所有 OpenCV 路径都变成

@executable_path/... /Frameworks/xxxxxxxxx

但现在我将打包的应用程序移到其他 Mac OS 上,但它仍然无法运行。

我应该怎么做?有没有额外的步骤?

【问题讨论】:

    标签: macos qt opencv


    【解决方案1】:

    这个问题我解决了,原因是brew install的opencv库引用太乱了,我直接用cmake自己重新编译了一份opencv dylib文件,完美解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2020-02-12
      相关资源
      最近更新 更多