qt - 使用opencv和ffmpeg dylib错误部署QT项目

标签 qt opencv ffmpeg macdeployqt

当我使用 opencv 和 ffmpeg dylibs 构建我的项目时,我的应用程序因错误而崩溃:

Dyld Error Message: Library not loaded: /usr/local/Cellar/ffmpeg/4.1.3/lib/libswresample.3.dylib

Referenced from: /Applications/myApp.app/Contents/Frameworks/libavcodec.58.dylib Reason: image not found

我已经尝试使用 install_name_tool 来尝试更改路径:

install_name_tool -change libavcodec.58.dylib 

@executable_path/../Frameworks/libavcodec.58.dylib

/Users/me/code/build_output/MyAppQML/myApp.app/Contents/MacOS/myApp

虽然这修改了文件,但我仍然遇到相同的错误并在运行时崩溃。

install_name_tool 适合解决这个问题还是我应该看看其他东西?

我在 libavcodec.58.dylib 上使用了 otool,它显示了一些链接到 @executable_path 的路径

@executable_path/../Frameworks/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.35.100)
    /usr/local/Cellar/ffmpeg/4.1.3/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.3.100)
    /usr/local/Cellar/ffmpeg/4.1.3/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.22.100)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
    @executable_path/../Frameworks/liblzma.5.dylib (compatibility version 8.0.0, current version 8.4.0)
    @executable_path/../Frameworks/libopencore-amrwb.0.dylib (compatibility version 1.0.0, current version 1.3.0)

最佳答案

通过使用修复:

install_name_tool -change /usr/local/Cellar/ffmpeg/4.1.3/lib/libswresample.3.dylib 

@executable_path/../Frameworks/libswresample.3.dylib

/Users/me/code/build_output/MyAppQML/myApp.app/Contents/Frameworks/libavcodec.58.dylib

感谢@L指点。斯科特·约翰逊

关于qt - 使用opencv和ffmpeg dylib错误部署QT项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56937795/

相关文章:

c++ - 使用win32 api在qwidget中填充文本

c++ - Qt如何模拟鼠标事件?

c++ - 为什么这个程序(有时)会失败?

python - 如何看待导入的 OpenCV 代码? (特别是 python 的 cv2)

将 RGB 数组转换为 Mat (OpenCv)

java - 在 javacv 中将 IplImage 转换为 Mat

ffmpeg 1 多帧图像

android - FFmpeg:如何使输出视频与输入视频具有相同的宽度、高度和 SAR

c++ - 为什么qmap使用skiplist而不是ob rb-tree?

ios - IOS 的 FFMpeg - 禁用日志级别