双方依赖的 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)并使用系统共享库。