Opencv&windows&qt编译流程及问题解决

1.需要的工具和环境:

	opencv源码
	已经安装好的qt
	安装cmake
	将qt中的gcc和g++工具的目录添加到path环境变量

2.配置流程

(1)使用cmake工具配置源码,个人理解像内核中的make menuconfig一样,对需要的模块进行配置。
cmake中主要就是将源码的文件生成到了xxx-build目录中,注意配置编译工具微mingw32,然后在qt中我选择的是32位的工具,尝试过64位的但是总遇到问题。
(2)在默认配置中要加入OPENCV_GL和 OPENCV_QT两个选项,并且QT需要配置一下路径。
(3)在需要使用人脸识别的时候需要加入opencv_contrib中的face模块,去官方github上下载对应版本的模块,然后在cmake中OPENCV_EXTERA_MODULE_PATH中添加module的路径,进行配置。(同理,可能在使用某些功能的时候也可能遇到同样的问题,所以需要注意这一点,如果是后面添加的需要注意一下需要重新make和make install, 否则会没有对应的库)
(4)在终端中执行 mingw32-make 和mingw32-make install进行编译和安装。
(5)在qt的工程.pro中添加库的路径

问题解决

(1)在终端中make出现配置当前版本库失败,或者找不到当前版本的库,在cmake gui中添加条目OPENCV_VS_VERSIONINFO_SKIP = 1,再重新Configure,Generate后,在cmd窗口中mingw32-make即可继续编译
(2)在网上看的可能会遇到如果需要编译64位的,需要下载wingw64进行编译
(3)在qt中使用遇到不适配C++11规则,解决方法是加入宏定义 #define _GLIBCXX_USE_CXX11_ABI 0
(4)如果在qt中使用遇到未找到函数,需重启电脑,配置完环境变量未生效。
(5)在cmake工具使用中出现下载文件错误的问题,问题原因是上不了外网,导致下载失败,所以,需要根据cmake工具提示的问题,查看对应的脚本,并且通过代理网站下载对应的文件,根据脚本将它重命名成对应的名字,并放入对应的文件夹,就能解决。

具体流程参考:
https://blog.csdn.net/weixin_42322013/article/details/88808230
https://blog.csdn.net/weixin_38871681/article/details/110916080
https://blog.csdn.net/start223/article/details/110224080

猜你喜欢

转载自blog.csdn.net/weixin_43069863/article/details/120055236