SLAM学习基础篇2,Vscode中的C++环境配置(顺带讲解cuda配置)
文章到此正片才开始,vscode不会自带g++,需要自己下载和配置,因为我们不想使用Visual Studio(卸载好像有一点问题,而且影响了我原有的环境),而minGW已经很久没有在官网维护了,所以我们选择:自带minGW的dev-C++安装时选择english就好,打开时可以选择简体中文······但这不重要,我们至少目前不用他,我们的目标是用里面带的minGW。找到下载好的cuda的安装包,
在此专栏的上一篇中已经讲解了Linux 系统中的Vscode基础配置,提到了C++环境的配置,而在Windows系统中给Vscode配置C++环境光靠下载插件好像并不行,这也是当时我在Windows系统中配置CUDA时所遇到的问题,所以此篇以CUDA配置为引例来讲解Windows系统下Vscode中的C++环境配置,以下分为了两个系统
一.Windows
1.Vscode下载
链接:Download Visual Studio Code - Mac, Linux, Windows
这里不多说
2.CUDA下载及配置
2.1 查看电脑匹配的CUDA版本
win+r并输入cmd,进入后输入如下命令查看,nvidia-smi查看的CUDA版本可能≥nvcc --version的版本,此时应该以nvcc得到的版本为准。
nvcc -V
nvidia-smi
2.2 上官网下载对应版本的CUDA(允许开发者使用NVIDIA GPU(图形处理单元)进行高性能计算(HPC)的开发)和CUDNN(是一个GPU加速的深度神经网络基元库,它提供了一系列高度优化的深度学习操作实现)
2.2.1 CUDA下载
链接如下:https://developer.nvidia.com/cuda-downloads
其他版本的可以看资源中的:以前CUDA版本存档 ,找到后点击进入,选择可以参考下图
2.2.2 CUDNN下载
链接如下:https://developer.nvidia.com/rdp/cudnn-download
点击下载地址进入如下界面,如果没有账号,需要注册一个账号在进行下载。
注册完成以后进入如下界面,选择相应的cuda版本下载cuDNN版本
此链接也可选: cuDNN Archive | NVIDIA Developer
2.3 安装及配置
找到下载好的cuda的安装包,双击打开,设置好要安装的路径,点击OK等待安装,这些不做演示,因为已经下载。进入页面后有几步:
(1)系统检查:
(2)许可协议:点击同意并继续
(3)选项:选择自定义,点击下一步,选择驱动程序组件:全选,点击下一步
(4)安装:安装位置,不用改,就用默认位置并记住默认下载位置,点击下一步
(5)显示安装完成,结束
cuda好了后,解压下载的cudnn压缩包
找到cuda的安装路径,将cuDNN三个文件夹的内容分别复制到cuda对应的文件夹里面
最重要的一部分:为cuDNN添加环境变量(在系统环境中添加)
2.4 测试
1.win+R
进入cmd,在命令行输入nvcc -V,有cuda版本
则表示cuda已经安装成功
2.进入cuda的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite文件夹下,点击运行bandwidthTest.exe和deviceQuery.exe后终端显示的Result=PASS,即没有问题。
3.C++环境
配完以上部分后在Vscode中训练模型时,你会发现还是有问题,他会报:openMP库并行运算出问题,这是因为缺少C++的环境!文章到此正片才开始,vscode不会自带g++,需要自己下载和配置,因为我们不想使用Visual Studio(卸载好像有一点问题,而且影响了我原有的环境),而minGW已经很久没有在官网维护了,所以我们选择:自带minGW的dev-C++
链接如下:http://sourceforge.net/projects/orwelldevcpp/
安装时选择english就好,打开时可以选择简体中文······但这不重要,我们至少目前不用他,我们的目标是用里面带的minGW。然后配置环境变量:设置->搜索高级系统设置,点击环境变量
双击用户变量中的Path,然后点击新建,把刚才你下载路径下的minGW(64)目录下的bin文件夹路径填入(系统变量也可以)
再打开cmd,输入
g++ --version
如图就没问题了。
打开vscode,在左侧扩展出下载三个包:python,C/C++和code runner,还需要在项目根文件夹下创建.vscode文件夹,共四个json文件
(1)c_cpp_properties.json
{
"configurations": [
{
"name": "Win64",
"includePath": ["${workspaceFolder}/**"],
"defines": ["_DEBUG", "UNICODE", "_UNICODE"],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "D:\\Dev-cpp\\minGW64\\bin\\g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
(2)tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe"
],
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
(3)launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Dev-cpp\\minGW64\\bin\\g++.exe",
"preLaunchTask": "g++",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
(4)settings.json
{
"files.associations": {
"*.py": "python",
"iostream": "cpp",
"*.tcc": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"ostream": "cpp",
"new": "cpp",
"typeinfo": "cpp",
"deque": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"fstream": "cpp",
"sstream": "cpp",
"map": "c",
"stdio.h": "c",
"algorithm": "cpp",
"atomic": "cpp",
"bit": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"concepts": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"exception": "cpp",
"ios": "cpp",
"istream": "cpp",
"iterator": "cpp",
"limits": "cpp",
"memory": "cpp",
"random": "cpp",
"set": "cpp",
"stack": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"xfacet": "cpp",
"xiosbase": "cpp",
"xlocale": "cpp",
"xlocinfo": "cpp",
"xlocnum": "cpp",
"xmemory": "cpp",
"xstddef": "cpp",
"xstring": "cpp",
"xtr1common": "cpp",
"xtree": "cpp",
"xutility": "cpp",
"stdlib.h": "c",
"string.h": "c"
},
"editor.suggest.snippetsPreventQuickSuggestions": false,
"aiXcoder.showTrayIcon": true
}
注:
(1)c++17可能会有兼容性问题,如果顾虑此类问题或者因此报错记得把c_cpp_properties.json中的cStandard改为c11,cppStandard改为c++11
(2)tasks文件的label与launch文件的preLaunchTask值需要一致
(3)tasks文件的type值需要改成shell,并在return 0前执行system("pause");(如果你要写c/c++程序的话)
(4)其中的"D:\\Dev-cpp\\minGW\\bin\\g++.exe"和"D:\\Dev-cpp\\minGW\\bin\\gdb.exe"替换为自己路径的对应文件就行,分隔符记得打成双反斜杠\\。
二.Linux
在上一节讲了Vscode基础配置,现在需要再下载一个g++,命令如下
sudo apt install g++
然后就可以在Vscode里面直接编译运行CPP文件了。
测试如下:
在终端可行,那现在在Vscode里面测试一下:
成功运行,它会自动在.vscode文件夹下生成json文件
完结撒花!!

欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)