写在前面的前面:这篇文章vscode和cpp插件版本有点老了,仅供大家参考,最新的和最详细的更新见我的另一篇文章:https://blog.csdn.net/bat67/article/details/76095813
C:\Program Files (x86)\CodeBlocks
,里面的MinGW就是安装的编译器了,将里面的bin文件夹加入路径,我的就是C:\Program Files (x86)\CodeBlocks\MinGW\bin
,将这个加入路径即可。C:\Program Files (x86)\CodeBlocks\MinGW\bin
,如下图:Open with Code
选项了ctrl+shift+x
)然后在搜索框内输入C++
第一个就是,点击安装即可.vscode
文件#include <iostream> int main() { std::cout<<"hello world"; return 0; }
launch.json
用下面的替换:{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 "environment": [], "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", "miDebuggerPath": "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gdb32.exe",// miDebugger的路径,注意这里要与MinGw的路径对应 "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
miDebuggerPath
这一项要确保和你安装的路径一致。如果和我一样都是默认安装的那就可以不用改,原封不动复制即可。不过最好需要注意一下miDebuggerPath
这一项中,你的安装路径最后到底是gdb32.exe
还是gdb.exe
。我的是gdb32.exe,视情况更改。tasks.json
,由于版本变化(新版的在此时运行会出现could not find the task 'g++'
),我建议直接在.vscode
文件夹中新建tasks.json
】tasks.json
文件(注意有个s,谢评论区指正,下面的图片是一定正确的),然后里面粘贴用下面的内容{ "version": "0.1.0", "command": "g++", "args": ["-g","${file}","-o","${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 } } }
楼主我想把exe生成到代码所在的文件夹下 那个tasks和launch怎么设置 我直接改地址调试的时候会有1的报错 希望楼主能帮下忙 我不懂怎么配置
回答:
launch.json
中program
改成:"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
task.json
中args
改成:"args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],
具体那些替换变量的意思见下面两篇文章~:
https://blog.csdn.net/bat67/article/details/78302871
https://blog.csdn.net/bat67/article/details/78302870