这几天想在虚拟机上搭建Ubuntu的开发环境,包括了Matlab和QT(C++)的开发工具安装等,同时由于做图像处理,所以还必须要安装FFMPEG和OpenCV库。下面就讲讲我们安装时出现qt中调用OpenCV库时奔溃的问题。
1、我首先安装了ffmpeg(matlab中一个测试程序视频写出需要它,所以先安装了它),然后在安装QT(建议不要使用源安装),最后再安装OpenCV。安装中虽然遇到些问题,但是都通过查找解决了,但是最后再 qt中测试OpenCV时,程序在启动时发生crashed,通过网络查找确定不是pro文件配置的问题及系统变量的问题。不过有思路就是可能opencv库编译的时候没有搜索到qt路径,因此再次执行下面命令时
1.1 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON
查看打印信息找不到qt的路径,因此根据网络资料修改为
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D Qt5Concurrent_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Concurrent" -D Qt5Core_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Core" -D Qt5Gui_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Gui" -D Qt5OpenGL_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5OpenGL" -D Qt5Test_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Test" -D Qt5Widgets_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Widgets" ..
红色部分为新添加信息,再次执行cmake,得到的编译链接库在Qt调用中成功。
1.2 但是在测视频文件时,发现无法打开,并且我的vlc播放器也无法正常工作了,然后重新执行上面的命令,查看到打印信息中ffmpeg,结果为下:
-- FFMPEG: NO
-- codec: NO
-- format: NO
-- util: NO
-- swscale: NO
-- resample: NO
-- gentoo-style: YES
解决办法是找到ffmpeg的安装路径,lib文件夹下有pkgconfig, .pc文件位置是opencv需要知晓的信息
,因此讲PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig信息添加到 /etc/environment文件中,然后执行下面的命令:
source /etc/environment
然后按照一般方式进行安装,生成的动态链接库在QT中调用视频时可正常工作。
参考链接:
http://www.linuxdiyf.com/linux/13355.html
http://jingyan.baidu.com/article/db55b609a3f6274ba30a2fb8.html
http://answers.opencv.org/question/59322/could-not-find-a-package-configuration-file-provided-by-qt5core/