使用 mingw、qt 构建 opencv 时出错,windows

Error building opencv with mingw, qt, windows

我尝试用 mingw 为 Qt 5.13.0 构建 opencv 库。我已经使用 cmake 的选项生成了 makefile:

"C:\Program Files (x86)\CMake\bin\cmake.exe" ../sources -G "MinGW Makefiles" -DWITH_QT=ON -DWITH_QT_OPENGL=ON -DBUILD_EXAMLES=ON -DQT_QTCORE_LIBRARY_DEBUG="Qt5Cored.dll" -DQT_QTCORE_LIBRARY_RELEASE="Qt5Core.dll" -DQT_QMAKE_EXECUTABLE="qmake.exe" -DCMAKE_BUILD_TYPE=Release -DENABLE_PRECOMPILED_HEADERS=OFF

当我尝试使用 "mingw32-make" 构建全部时,出现错误:

[ 40%] Building RC object modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj
gcc: error: long: No such file or directory
C:\Qt\Tools\mingw730_64\bin\windres.exe: preprocessing failed.
mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1495: modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj] Error 1
mingw32-make[2]: *** Waiting for unfinished jobs....
mingw32-make[1]: *** [CMakeFiles\Makefile2:1889: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make: *** [Makefile:182: all] Error 2

版本:CMake - 3.17.2,Qt - 5.13.0,opencv - 4.3.0 我该如何解决这个问题?

解决方法: 您需要打开 "modules/core/CMakeFiles/opencv_core.dir/flag.make" 并将 "RC_DEFINES=..." 替换为 "RC_DEFINES = -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D_WIN32_WINNT=0x0601 -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"