Qt+cmake编译并配置OpenCV问题

Qt+cmake编译并配置OpenCV错误记录
本来使用的是visual studio+opencv,但是觉得vs有时候是稍微有些卡,而且启动起来还比较慢,所以换了visual code,但是这就是一个编辑器,还需要自己配置编译器和配置文件,也挺麻烦的,找了很长时间也没有找到对应的,所以就放弃了,后来选择了Qt+cmake+opencv,首先用cmake编译opencv源文件(sources)动态链接库。但是整个过程也是艰难…遇到的不少问题记录一下,以便后面查阅参考,另外感谢网站论坛博客上各位大佬的分享。

设备与软件信息:
Win10 64位
Qt5.8版本
Cmake
opencv4.0.1

基本安装和平台搭建教程较多,参考的博主写的也很详细,自己就是按照这些一步一步弄的,主要记录一下cmake编译安装过程遇到的error。
安装过程参考:
https://blog.csdn.net/sinat_36264666/article/details/73200739
https://blog.csdn.net/t980832453/article/details/79396972
https://blog.csdn.net/huihut/article/details/78701814

下面是自己在整个过程中所遇到的问题:

1,编译器版本不兼容问题:
每次一到30%~40%左右就显示下面错误
F:/Qt5.12/Tools/mingw730_64/bin/…/lib/gcc/x86_64-w64-mingw32/7.3.0/…/…/…/…/x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `CMakeFiles\opencv_core.dir/objects.a(vs_version.rc.obj)’ is incompatible with i386:x86-64 output
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1481: bin/libopencv_core401.dll] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:1333: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make: *** [Makefile:162: all] Error 2

解决方法:
当时在Qt的网站上下载最新版的安装包自带了mingw64,没有找到选择对应的mingw32位和opencv与Qt对应。所以选择了低版本5.8版本的Qt,然后是mingw32,最后成功编译opencv。若是更高级的版本的QT和mingw64位的可以参考:
https://blog.huihut.com/2018/07/31/CompiledOpenCVWithMinGW64/

2,Debug与Realese版本
mingw32-make之后60%左右遇到问题
在这里插入图片描述

解决方法:

根据自己的需求选择CMAKE_BUILD_TYPE是Release,还是Debug。

3,Anaconoda冲突问题:
[ 98%] Built target gen_opencv_python_source
Scanning dependencies of target opencv_python3
[ 98%] Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj
[ 98%] Linking CXX shared module …\lib\python3\cv2.cp37-win_amd64.pyd
F:/Anaconda/python37.dll: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
modules\python3\CMakeFiles\opencv_python3.dir\build.make:100:recipe for target ‘lib/python3/cv2.cp37-win_amd64.pyd’ failed
mingw32-make[2]: *** [lib/python3/cv2.cp37-win_amd64.pyd] Error 1
CMakeFiles\Makefile2:6798: recipe for target ‘modules/python3/CMakeFiles/opencv_python3.dir/all’ failed
mingw32-make[1]: *** [modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
Makefile:161: recipe for target ‘all’ failed
mingw32-make: *** [all] Error 2
解决方法:
由于本人之前电脑装了Anaconda,所以在cmake进行configure之后总是自动检测到python路径并且为其自动build了python的opencv链接,所以后面我取消选中一切关于python的选项。
Qt+cmake编译并配置OpenCV问题_第1张图片
4,设置 QT_MAKE_EXECUTABLE
我按照网上的方法教程用cmake首先点击 Configure之后没有QT_MAKE_EXECUTABLE
,后面发现是可以自己Add Entry,然后将qmake的路径添加进去就好了。
Qt+cmake编译并配置OpenCV问题_第2张图片
5,Qt测试过程
输入测试程序后:

#include 
#include 

using namespace cv;

int main()
{
    Mat image;
    image=imread("D:\\saber1.jpg");//括号里为自己图像的路径
    namedWindow("图像");
    imshow("图像",image);
    waitKey(0);
    return 0;
}

Error while building/deploying project QTtest (kit: Desktop Qt 5.8.0 MinGW 32bit
Util.asciify(“build-demo1_Qt_5_8_0_MinGW_32bit-Debug”)": TypeError: Property ‘asciify’ of object Core::Internal::UtilsJsExtension(0x287e8a8) is not a function"
Error while building/deploying project demo-1 (kit: Desktop Qt 5.8.0 MinGW 32bit)
When executing step “qmake”
解决方法:
左侧项目取消勾选框中:
Qt+cmake编译并配置OpenCV问题_第3张图片
之后显示正常了。

以上就是几个我遇到的问题,
编译链接库配置和解决过程查阅了各种博客,有的不是看不懂就是和自己所遇见的问题不太一样,所以想记录一下,最后感觉还是一切参照官方说明才是王道啊!
前提已经安装了Qt和cmake可以参见一下说明文档:
https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

你可能感兴趣的:(Qt+cmake编译并配置OpenCV问题)