cmake编译opencv源代码报错
cmake编译opencv源代码报错:
错误1.提示QtGui_DIR QtOpengl_DIR QtCore_DIR等错误,表示未设置QT环境
错误2.提示f’fmpeg下载失败(超时)
提示QtGui_DIR QtOpengl_DIR QtCore_GUI等错误
解决:在opencv源代码文件中的CMakeLists.txt文件添加如下代码(可添加在文件头处)
根据自己的错误提示设置相应的路径如:
set(Qt5Core_DIR “C:/Qt/Qt5.9.6/5.9.6/mingw53_32/lib/cmake/Qt5Core”)
set (Qt5Gui_DIR “C:/Qt/Qt5.9.6/5.9.6/mingw53_32/lib/cmake/Qt5Gui”)
set(Qt5Widgets_DIR “C:/Qt/Qt5.9.6/5.9.6/mingw53_32/lib/cmake/Qt5Widgets”)
set(Qt5Test_DIR “C:/Qt/Qt5.9.6/5.9.6/mingw53_32/lib/cmake/Qt5Test”)
。。。
提示ffmpeg库文件下载失败(超时)
解决:打开下载日志文件,分析日志文件在Build文件夹下的CMakeDownloadLog.txt
根据错误提示,
分析:Source/.cache/ffmpeg文件夹和Build/3rdparty/ffmpeg文件夹中存放的均是3个文件,opencv_ffmpeg.dll、opencv_ffmpeg_64.dll、ffmpeg_version.cmake。根据提示将3个相应的下载地址下载文件到Build/3rdparty/ffmpeg文件夹下,并将下载的3个文件拷贝到Source/.cache/ffmpeg文件夹下,但是Source/.cache/ffmpeg文件夹中的文件名需改成:文件相应的md5-文件名。
如下段下载日志:
#do_copy “opencv_ffmpeg_64.dll” “2cc08fc4fef8199fe80e0f126684834f” “https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll” “D:/workspace/opencv_contrib_3.4.3/opencv-3.4.3-Build/3rdparty/ffmpeg”
#missing “D:/workspace/opencv_contrib_3.4.3/opencv-3.4.3-Build/3rdparty/ffmpeg/opencv_ffmpeg_64.dll”
#check_md5 “D:/workspace/opencv_contrib_3.4.3/opencv-3.4.3-Source/.cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll”
上面的意思表示从下载链接处https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll拷贝动态库到D:/workspace/opencv_contrib_3.4.3/opencv-3.4.3-Build/3rdparty/ffmpeg文件夹下,同时给出了md5值
处理:
opencv_ffmpeg_64.dll的下载地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll
opencv_ffmpeg_64.dll的md5值是2cc08fc4fef8199fe80e0f126684834f
下载到Build/3rdparty/ffmpeg/文件夹下
下载完后是这样的
Build/3rdparty/ffmpeg/opencv_ffmpeg_64.dll
手动拷贝文件到Source文件夹下并改名:md5+文件名,成这样
Source/.cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll
另外的opencv_ffmpeg.dll和ffmpeg_version.cmake也是相同方法处理。
注意cmake文件将链接复制到浏览器后回车,然后右键单击选择另存为txt文件,存到Build/3rdparty/ffmpeg/文件夹下,然后到文件夹中重命名文件将后缀.txt去掉,至此cmake文件就OK了,然后复制到Source/.cache/ffmpeg/文件中,重命名,前面➕md5.
再次点击Configure就OK了
supported