Qt5.14 OpenCv4.2.0 mingw 编译

1.准备工作,参考上两篇

https://blog.csdn.net/u011171361/article/details/106604408

https://blog.csdn.net/u011171361/article/details/106303216

2.cmake配置


 

C:E:/Qt/Qt5.12.3/Tools/mingw730_64/bin/gcc.exe

C++:E:/Qt/Qt5.12.3/Tools/mingw730_64/bin/g++.exe

 

 

3.选项配置

WITH_QT                             勾选
WITH_OPENGL                         勾选
BUILD_opencv_world   	            不勾选(勾选将不编译opencv_contrib,这里勾选要编译)
BUILD_opencv_rgbd                   不勾选
ENABLE_PRECOMPILED_HEADERS          不勾选
TEST相关的不选
BUILD_PERF_TESTS                    不勾选
BUILD_TESTS                         不勾选
BUILD_opencv_phthon_tests           不勾选

CMAKE_BUILD_TYPE                    Release

配置额外的模块路径
OPENCV_EXTRA_MODULES_PATH           F:/opencv/qtcreator/opencv-4.2.0/opencv_contrib/modules

Qt路径配置为mingw73_64的路径


具体见下图。。。

可能出现的错误,引用:https://blog.csdn.net/Amiao_89/article/details/106540839

错误1:

如果出现dynafu.cpp的错误,BUILD_opencv_rgbd与WITH_OPENGL只能勾选其一。 

Linking CXX shared library …\bin\libopencv_world430.dll
CMakeFiles\opencv_world.dir/objects.a(zoomableimage.cpp.obj):zoomableimage.cpp:(.text$_ZN3cvv6qtutil13ZoomableImage14emitUpdateAreaEv+0x61): undefined reference to `cvv::qtutil::ZoomableImage::updateArea(QRectF, double) const’
BUILD_opencv_world"(不勾选,如果不编译opencv_contrib则勾选)

错误2

[ 33%] Built target libtiff
E:/Qt/Qt5.14.2/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:1693: bin/libopencv_core420.dll] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:2351: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make: *** [Makefile:182: all] Error 2

F:\opencv\qtcreator\opencv-4.2.0\build>mingw32-make clear
mingw32-make: *** No rule to make target 'clear'.  Stop.


解决方法

 4.编译安装

 

1.打开Qt 5.14.2 (MinGW 7.3.0 64-bit)

2.进入编译目录,输入mingw32-make -j8
F:\opencv\qtcreator\opencv-4.2.0\build>mingw32-make -j8

3.mingw32-make install

 收工。。。。

 

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt 5.14 是一种跨平台的应用开发框架,而MSVC是微软的C++编译器。静态编译是指将应用程序所需的所有依赖库和资源都编译打包到可执行文件中,这样可以避免运行时的依赖问题。 要在Qt 5.14中进行MSVC静态编译,首先需要使用Qt installer安装Qt Creator和MSVC编译器。安装过程中需要选择MSVC编译器,并确保安装了相应版本的Windows SDK和MSVC工具集。 在Qt Creator中,创建一个新的Qt项目,并在项目配置中选择MSVC编译器作为目标。然后,在项目设置中,将构建类型设置为Release,并启用静态构建。 接下来,需要在.pro文件中进行配置。添加以下行来启用静态编译: ```cpp CONFIG += static ``` 然后,重新构建项目。在构建过程中,Qt将自动查找和链接静态版本的Qt库。如果一切顺利,最终构建将生成一个静态编译的可执行文件。你可以将此可执行文件在其他计算机上运行,而无需安装Qt运行时库。 需要注意的是,静态编译可能会导致生成的可执行文件变得较大,因为所有依赖库都被包含在内。另外,静态编译还可能会导致一些在动态链接时出现的问题,如无法加载某些插件或动态链接库。 因此,在进行静态编译之前,需要仔细考虑项目的需求和限制。如果项目需要在不同的操作系统上运行,可能需要进行更多的配置和测试,以确保静态编译的可移植性和稳定性。 ### 回答2: Qt是一个跨平台的C++应用程序开发框架,它提供了丰富的工具和库,使程序开发变得更加简单和高效。Qt提供了多种编译选项,包括静态编译和动态编译。静态编译是将程序所需的所有库和依赖项都包含在最终的可执行文件中,这样可以避免在运行时需要外部的库文件。 Qt5.14是Qt框架的一个版本,而MSVC是微软的编译器。要实现Qt5.14的静态编译,需要在MSVC中进行相应的配置和操作。 首先,需要从Qt官方网站下载和安装Qt5.14的静态版本。在安装过程中,需要选择静态编译选项,并确保已经选择了MSVC作为所需的编译器。 安装完成后,打开Qt Creator。在项目的.pro文件中,添加以下行来设置静态编译选项:CONFIG += static 然后,使用Qt Creator打开项目文件。在项目设置中,选择正确的编译器和构建套件,并确保使用的是静态版本的Qt库。 在项目构建过程中,Qt会自动处理静态编译的细节,并将所有需要的库和依赖项链接到可执行文件中。 完成上述步骤后,重新构建项目,即可得到一个静态编译的可执行文件。这个可执行文件可以在没有安装Qt运行时环境的计算机上运行,因为所有的库和依赖项都已经包含在其中。 静态编译可以很好地解决在不同计算机上运行程序时缺少库文件的问题,但它也会使可执行文件的体积变得更大。因此,在进行静态编译时,需要权衡文件大小和运行环境的适用性。 总而言之,通过正确配置Qt5.14和MSVC,可以实现静态编译。这样可以确保程序的可移植性和运行环境的一致性,但同时也需要考虑文件大小和运行效率的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值