首先,下载好MinGW,以及相关编译器的下载。
将MinGW\bin放置于Path路径中(环境变量的配置)
前文有讲过,可以使用命令gcc -v检验是否安装成功。
其次,在VScode里安装C++插件,安装结束后,重启VScode。
- 新建一个文件夹,用于存放Cpp代码
- 在新建的文件夹下,建立一个名为.vscode的文件夹,里面用于保存以下文件
c_cpp_properties.json launch.json tasks.json
- c_cpp_properties.json
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceRoot}", "d:/software/mingw/include/**", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/mingw32", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/backward", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../include", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include-fixed" ], "defines": [ "_DEBUG", "UNICODE", "__GNUC__=6", "__cdecl=__attribute__((__cdecl__))" ], "intelliSenseMode": "msvc-x64", "browse": { "limitSymbolsToIncludedHeaders": true, "databaseFilename": "", "path": [ "${workspaceRoot}", "d:/software/mingw/include/**", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/mingw32", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include/c++/backward", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../include", "d:/software/mingw/bin/../lib/gcc/mingw32/9.2.0/include-fixed" ] } } ], "version": 4 }
- launch.json
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录 "environment": [], "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", "miDebuggerPath": "D:/Software/MinGW/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
- task.json
{ //"label": "(gdb) Launch", //任务的名字,就是刚才在命令面板中选择的时候所看到的,可以自己设置 "version": "2.0.0", "command": "g++", "args": [ "-g", "${file}", "-o", "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe" ], // 编译命令参数 "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "\\" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }
需要注意的是,c_cpp_properties.json文件中的includePath以及path中的路径需要根据自己的实际路径进行更改。includePath与path具有相同的值。同样,launch.json文件中的miDebuggerPath也应该为自己电脑中的gdb.exe文件的绝对路径。
可以使用命令gcc -v -E -x c++ - 获取includePath的值。
同样,我对task.json文件中的args值进行了修改,这样可以将生成的可执行文件统一放在了一个exe的文件夹下。使用参数值
"${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"
结尾
以上就已经完成了,VScode中C++的环境的搭建。这是可以在.vscode的上一级目录下建立新的文件夹用于cpp文件的存储。创建一个cpp文件,执行即可。
可能遇到的问题,这里直接说结果吧,因为我在执行的时候,总是遇到无法找到生成的可执行文件这个问题,我一度以为是launch.json,c_cpp_properties.json文件中的路径问题。经过折磨之后,终于发现是由主目录名字为中文所引起的。所以,希望伙伴们的文件夹、文件的名字为英文,养成一个好的习惯。
补充:workspace:表示当前打开的文件夹
- ${worksapceFolder}:代表当前workspace的文件夹路径,
- ${fileBasenameNoExtension}.exe:表示不带生成 当前文件名.exe的可执行文件
- ${workspaceRoot}:表示当前打开的文件夹的绝对路径
- ${workspaceRootFolderName}:表示workspace的文件夹名
- ${file}:当前打开正在编辑的文件的绝对路径
- ${relativeFile}:从当前打开的文件夹到当前打开的文件的绝对路径
- ${fileBasenameNoExtension}:当前文件的文件名,不带后缀
- ${fileBasename}:当前文件的文件名
- ${fileExtname}:当前打开的文件的后缀名