**
VScode配置C语言(文件配置)
**
在VScode配置C语言环境时,在完成了C/C++的拓展下载后需要建立配置文件,这篇文章记录一下自己的配置文件。
一、launch.json
// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md
{
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - 生成和调试活动文件", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,此为工作区文件夹;改成${fileDirname}可变为文件所在目录
"environment": [], // 环境变量
"externalConsole": false, // 为true时使用单独的cmd窗口,与其它IDE一致;18年10月后设为false可调用VSC内置终端
"internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
"MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb
"miDebuggerPath": "D:\\编程类\\mingw64\\bin\\gdb.exe", // 需要修改成自己的MinGw文件的gdb.exe路径
"setupCommands": [ //不用修改
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe build active file" // 调试会话开始前执行的任务,一般为编译程序。必须与tasks.json的label相对应
}
]
}
需要修改成自己的设置参数的有“miDebuggerPath”:需要修改成自己的MinGw文件的gdb.exe路径
二、task.json
{
"tasks": [
{
"type": "shell",
"label": "C/C++ gcc.exe build active file", // 任务名称,与launch.json的preLaunchTask相对应
"command": "gcc", // 要使用的编译器,C++用clang++;如果编译失败,改成gcc或g++试试,还有问题那就是你自己的代码有错误
"args": [
"-g",
"${file}",
"-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
"${fileDirname}/${fileBasenameNoExtension}.exe"
], // 编译命令参数
"options":{
"cwd": "D:\\编程类\\mingw64\\bin"//需要修改成自己的MinGw的bin路径
},
"problemMatcher":[
"$gcc"
],
"group":{
"kind": "build",
"isDefault": true
}
}
],
"version":"2.0.0"
}
需要修改的地方是:
“cwd”后需要修改成自己的MinGw的bin的路径。
注意:
“label”:后的任务名称要与launch.json中的preLaunch后的任务名称相同!
三、c_cpp_properties.json
{
"configurations": [
{
"name": "MinGW",
"intelliSenseMode": "gcc-x64",
"compilerPath": "D:\\programming file\\mingw64\\bin\\gcc.exe",
"includePath": [
"${workspaceFolder}"
],
"defines": [],
"browse": {
"path": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
修改对应路径:“compilerPath”: “D:\programming file\mingw64\bin\gcc.exe”
四、settings.json
{
"files.defaultLanguage": "c", // ctrl+N新建文件后默认的语言
"editor.formatOnType": true, // 输入时就进行格式化,默认触发字符较少,分号可以触发
"editor.snippetSuggestions": "top", // snippets代码优先显示补全
"code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入
"code-runner.executorMap": {
"c": "cd $dir && clang '$fileName' -o '$fileNameWithoutExt.exe' -Wall -g -Og -static-libgcc --target=x86_64-w64-mingw -std=c11 && &'$dir$fileNameWithoutExt'",
"cpp": "cd $dir && clang++ '$fileName' -o '$fileNameWithoutExt.exe' -Wall -g -Og -static-libgcc --target=x86_64-w64-mingw -std=c++17 && &'$dir$fileNameWithoutExt'"
}, // 设置code runner的命令行
"code-runner.saveFileBeforeRun": true, // run code前保存
"code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false
"code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息
"C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序)
"C_Cpp.intelliSenseEngine": "Default", // 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools扩展文档
"C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉
"C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉
"clang.cflags": [ // 控制c语言静态检测的参数
"--target=x86_64-w64-mingw",
"-std=c11",
"-Wall"
],
"clang.cxxflags": [ // 控制c++静态检测时的参数
"--target=x86_64-w64-mingw",
"-std=c++17",
"-Wall"
],
"clang.completion.enable": true,
"files.associations": {
"cfloat": "cpp",
"cstdbool": "cpp"
} // 效果比cpptools要好
}
不用修改
注意:
1、配置好文件如果不能正常运行文件记得重启一下VScode试试
2、注意代码文件不能出现有中文名称的,尽量都用英文和数字来命名,不然会报错。