静态编译程序 依赖于 Qt 和 Opencv 静态库 会出现 jpeg jpg 图像格式保存崩溃的情况,这是什么原因?

双方依赖的 jpeg 静态库源码版本冲突,重新静态编译库,都采用一致版本即可。
读取 jpg jpeg 格式的文件,也会失败。

我假设你用BUILD_JPEG或OPENCV_BUILD_3RDPARTY_LIBS标志构建OpenCV。此外,OpenCV安装在/ usr / local / lib中。在这种情况下,OpenCV使用自己的libjpeg构建,该静态链接到opencv_highgui库中。

所以,当你创建一个QImage并且你已经将opencv_highgui链接到你的项目/应用程序时,链接器将搜索jpeg_CreateDecompress函数(该函数在Qt内部使用),它首先在opencv_highgui库中找到。而Qt(Ubuntu 12.04中的libjpeg8)和OpenCV的发行版(libjpeg62)预期的版本之间应该存在一些不兼容问题。

因此,存在一个简单的解决方案;-) - 构建OpenCV时不需要发布libjpeg(BUILD_JPEG = OFF)并使用系统共享库。
原文地址:https://www.cnblogs.com/cheungxiongwei/p/8383605.html