提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
距离上次更新文章已经是半年多前的事了,停更并不是因为我停止了学习新的东西而是因为这样那样的事情不得不暂时放慢脚步,现在我又开了一个新坑——计算机图形学。 该系列的文章主要是记录学习games系列图形学过程中的一些问题和一些解决方案的文章。
这里我搭建的是mingw + visual studio code + cmake 的开发环境
首先安装visual code 插件
c/c++
cmake
cmake tools
其次安装MinGW下载,下载下来是一个压缩包把里面的内容解压到你想安装的位置,然后再将该目录设置到环境变量中 例如
设置好后, win+r 输入cmd 打开命令提示符,然后输入g++ -v, 然后回车如果有一堆输出则说明安装成功了
从官网下载 windows x64 installer 的安装执行文件, 安装的时候要注意
在install options的by default cmake does not add its directory to the system PATH.中,选择"Add CMake to the system PATH for all users",这样省去我们配置环境
安装完成后同样打开cmd 输入cmake -version 检查是否有版本号输出 如果有则说明安装成功
从Eigen官网下载zip安装包 如下图
下载后解压 在目录内新建build文件夹
打开cmake软件,在“Where is the source code:”栏选择eigen的根目录,在“Where to build the binaries:”栏中选择刚才新建的build目录,然后点击configure,然后选择MinGW,完成后点击Generate
生成完成后打开cmd 进入到刚刚新建的build 目录 输入 mingw32-make -j 8 (-j 8 的意思是使用8个线程进行编译,根据你的cup核心数和线程数选择)
完成后运行 mingw32-make install
一般前面正确配置这里不会出什么问题
从官网下载opencv并安装(我用的是3.4.10版本)
打开cmake软件,在“Where is the source code:”栏选择opencv/sources的目录,在“Where to build the binaries:”栏中选择build目录,然后点击configure,然后选择MinGW 和 specify native compilers(建议这么选避免不必要的编译错误),然后点击next 设置路径
compiler C 路径为 mingw64\bin\gcc.exe(我本地路径:C:\mingw64\bin\gcc.exe)
compiler C++ 路径为 mingw64\bin\g++.exe(我本地路径:C:\mingw64\bin\g++.exe)
这里路径根据自己实际填写,然后点击finsh,点击configure,注意configure过程中是否有红色报错,有些报错是因为下载一些文件失败了。可以根据红色错误中的log日志文件提示自己手动用迅雷等工具下载放到相应位置后,再点击一次configure
在搜索位置进行如下配置
勾选 WITH_OPENGL
勾选 ENABLE_CXX11
不勾选 WITH_MSMF(这个需要一些特殊的win sdk,仅适用于vs2019那些 这里选择的是MinGWMakefiles)
不勾选 WITH_IPP(同样仅适用vs)
不勾选 WITH_TBB(同样仅适用vs)
不勾选ENABLE_PRECOMPILED_HEADERS
然后配置完再点一次configure,然后点击Generate
管理员权限运行cmd,进入build文件夹运行命令mingw32-make -j 8 (-j 8 的意思是使用8个线程进行编译,请根据你的计算机配置合理设置线程数)
注意如果编译过程中有error 红色报错就倒回去上一步configure配置是不是有问题,一般这里编译报错都是上一步cmake软件配置哪里出问题了
运行命令 mingw32-make install
设置opencv的环境变量,管理员权限运行cmd
执行 setx -m OpenCV_DIR D:\WorkSpace\ComputerGraphics\opencv\build\lib (根据自己目录填写)
例作业1 打开cmakelist.txt 把include该为本机Eigen目录
然后 按ctrl+shift+p 选择gcc
然后再点击下方的build
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\build\\Rasterizer.exe",//后面这里exe 前缀根据cmakelist 里面的项目名称变
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "Build"
}
]
}
task.json
{
"version": "2.0.0",
"options": {
"cwd": "${workspaceFolder}/build"
},
"tasks": [
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
".."
],
},
{
"label": "make",
"group": {
"kind": "build",
"isDefault": true
},
"command": "mingw32-make.exe",
"args": [
],
},
{
"label": "Build",
"dependsOn":[
"cmake",
"make"
]
}
],
}