自从知道了c++版写opencv的好处之后,我就萌生了安装opencv 的想法(原来用的是python写的opencv)。安装的过程中天知道我经历了什么,可能我遇到了网上所有的问题,还有一些网上没有的。下面就是我的惨痛经历:
1.下载通道,选择自己的操作系统对应的版本,我选的是user installer 64bit;
2.傻瓜式安装,一直下一步
3.环境变量
这步骤也是默认的,因为改编辑器是微软提供的,会自动配置path。但是我想自己配置,所以就没有勾选“添加到PATH”。
4.安装完成
5.配置环境变量(上面勾选了“添加到PATH”的,这里可以略过)
6.安装一些常用库
安装C/C++,Chinese.点到这里是可以看到有insall的,我的是安装过了所以没有。
1.下载minGW,官网。
打开网络你会发现有两种安装方式,一种是网络安装(MinGW-W64 Online Installer),一种是手动安装MinGW-W64 GCC-版本号),第一个方法需要网络环境较好,我安装的时候,安装了一晚上都没反应,进度条居然一点都没动(反复安装过很多次,在线下载器有时不咋稳定)。第二种方式直接将下好压缩包解压到你的安装目录里,如:C:\mingw64.
注:这里的mingw是64位系统的哦。推荐使用X86_64-win32-seh版本。
每个选项都是做什么的大佬有介绍.传送门
2.设置环境变量
3.检查mingw是否安装成功:gcc -v
1.下载地址
选择binary distributions,这个要稳定一些。
2.安装路径自选,将该路径添加到环境变量。检查安装:
1.在官网下载exe文件,点击安装
2.在操作cmake-gui之前,如果没有翻过墙的话,要先在C:\Windows\System32\drivers\etc\hosts文件最后追加:151.101.72.133 raw.githubusercontent.com
因为cmake-gui会下载一些文件,这些文件都在raw.githubusercontent.com上,如果不修改一下hosts,许多文件很可能会下载失败。
如果非要管理员模式的话,就用文件覆盖。
打开cmake-gui后选择源文件路径和MakeFiles保存路径(自选路径),如图:
要注意下拉框选择的是MinGW,不要看岔了。之后点击Next,选择MinGW文件中编译工具如下,最后点击Finish。
执行过程中消息框会出现一堆红色信息,最后显示Configure done,是正常的。如果执行时中断,则存在其他问题。在执行完后,勾选BUILD_opencv_world,WITH_OPENGL和BUILD_EXAMPLES,不勾选OPENCV_ENABLE_ALLOCATOR_STATS、WITH_IPP、WITH_MSMF和ENABLE_PRECOMPILED_HEADERS(如果有的话),CPU_DISPATCH选空。如果要编译opencv_contrib,则需要在OPENCV_EXTRA_MODULES_PATH 把路径选择为解压的opencv_contrib文件中的“modules”文件夹。
此处出现ffmpeg、xfeatures2d等文件出错的问题,解决办法有:传送门
3.编译opencv
有两种方法,一种是使用编译好的文件(暂时忘记网站地址了,只记得是在github上),这样不会报错,但是注意版本对应。另一种就是手动使用cmake编译opencv,这部操作是整个安装步骤里最恶心,最变态的一步,在这里你会遇到各种各样的问题。
cmd到makefiles所在文件夹,执行minGW32-make命令,或者使用多线程minGW32-make -j (j可以是4,8,看你电脑能承受多少)建议不使用多线程,不稳定。
如果报错可查阅以下博客:
https://blog.huihut.com/2018/07/31/CompiledOpenCVWithMinGW64/
vs_version.rc.obj,error 1:
https://blog.csdn.net/sinat_36264666/article/details/73200739
https://stackoverflow.com/questions/61707195/error-building-opencv-with-mingw-qt-windows
一般问题都是可以通过勾选和去勾选解决的,因为之前就Configure过,因此回头再Configure一下花不了太多时间。
完成编译后,输入mingw32-make install,将OpenCV编译好的东西安装至build目录下install子目录中。
配置文件一—launch.json:
在启动界面点击打开文件夹,将目录选择至main.cpp所在的目录。打开main.cpp,点击启动调试,在选择环境这儿选择C++(GDB/LLDB),选择g++项,会出现launch.json配置文档界面。复制下面内容替换原来的内容。部分地方请根据自己的实际情况修改。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "build",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "这里填gdb.exe的目录,目录填完后还要加上gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}
配置文件二—tasks.json:
按Ctrl+Shift+P组合键,在弹出选项卡中输入tasks,选择任务:配置默认生成任务(Tasks:Configure Default Build Task),进入tasks.json的配置文档界面,同样复制如下内容替换掉原来tasks.json内容。
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "build",
"command": "这里填g++.exe的目录,填完目录后加上g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I",
"这里填OpenCV头文件目录",
"-L",
"这里填静态库文件目录",
"-l",
"opencv_img_hash345",
"-l",
"opencv_world345"
],
"options": {
"cwd": "这里填MinGW-w64的bin目录"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
},
]
}
配置文件三—c_cpp_properties.json:
按Ctrl+Shift+P组合键,在弹出选项卡中输入c/c++,选择C/C++编译配置(JSON)(C/C++:Edit Configurations(JSON)),进入c_cpp_properties.json,更改其中的includePath:
"includePath": [
"${workspaceFolder}/**",
"F:\\CV\\build\\install\\include",
"F:\\CV\\build\\install\\include\\opencv",
"F:\\CV\\build\\install\\include\\opencv2"
],
[1]https://www.jianshu.com/p/4e1f1edabfda
[2]https://www.jianshu.com/p/5933a8328805
[3]https://www.jianshu.com/p/bc6017331646
[4]https://www.cnblogs.com/kensporger/p/12320622.html
其他参考博客不记得了,如有冒犯,烦请原谅。