/*
事先声明,本人是一个C++(C with classes?)的小白,很多东西都不懂;
*/
最近换了个集成式开发环境——换成了VSCode;在配置文件方面出现了许多问题;还请资深人员帮忙解答!
一.配置文件之后不能使用调试:
这是我的配置文件:
launch.json:(在文件夹内)
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole":true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\programming\\C++\\Dev-c++\\Dev-Cpp\\MinGW32\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build hello world"
},
{
"name": "C/C++ Runner: Debug Session",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": true,
"cwd": "d:/programming/C++/programs/VScode/C_C++/Projects/projects/demo_1",
"program": "d:/programming/C++/programs/VScode/C_C++/Projects/projects/demo_1/build/Debug/outDebug",
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
launch.json:(在大文件夹内)
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
//注意这里填你自己 mingw-w64 下的 gdb.exe 目录
"miDebuggerPath": "D:\\programming\\C++\\Dev-c++\\Dev-Cpp\\MinGW32\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 生成活动文件"
}
]
}
tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "build hello world",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"group": "build"
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "D:\\programming\\C++\\Dev-c++\\Dev-Cpp\\MinGW32\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
]
}
c_cpp_properties.json:
{
"configurations": [
{
"name": "windows-gcc-x86",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "D:/programming/C++/Dev-c++/Dev-Cpp/MinGW32/bin/gcc.exe",
"cStandard": "${default}",
"cppStandard": "${default}",
"intelliSenseMode": "windows-gcc-x86"
}
],
"version": 4
}
settings.json:
{
"C_Cpp.errorSquiggles": "disabled",
"C_Cpp_Runner.msvcBatchPath": "",
"C_Cpp_Runner.cCompilerPath": "gcc",
"C_Cpp_Runner.cppCompilerPath": "g++",
"C_Cpp_Runner.debuggerPath": "gdb",
"C_Cpp_Runner.cStandard": "",
"C_Cpp_Runner.cppStandard": "",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
"-Wextra",
"-Wpedantic",
"-Wshadow",
"-Wformat=2",
"-Wconversion",
"-Wnull-dereference",
"-Wsign-conversion"
],
"C_Cpp_Runner.enableWarnings": true,
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
],
"C_Cpp_Runner.excludeSearch": [
"**/build",
"**/build/**",
"**/.*",
"**/.*/**",
"**/.vscode",
"**/.vscode/**"
]
}
调试文件:
#include
using namespace std;
int main(){
cout<<"Hello world!"<return 0;
}
当我用上面的文件点击调试时,会出现以下画面:
preLaunchTask"C/C++:g++.exe生成活动文件"已终止,退出代码为-1。
它给了我三个选项:
1.仍要调试
2.显示错误
3.中止
如果我选1,那么会出现以下内容:
* 正在执行任务: C/C++: g++.exe 生成活动文件
正在启动生成...
D:\programming\C++\Dev-c++\Dev-Cpp\MinGW32\bin\g++.exe -fdiagnostics-color=always -g "D:\programming\C++\programs\Projects\Demos\demo\demo_Hello world!\demo_Hello_world!.cpp" -o "D:\programming\C++\programs\Projects\Demos\demo\demo_Hello world!\demo_Hello_world!.exe"
g++.exe: error: unrecognized command line option '-fdiagnostics-color=always'
生成已完成,但出现错误。
* 终端进程启动失败(退出代码: -1)。
* 终端将被任务重用,按任意键关闭。
但如果我选2的话,又不会有任何报错
(选3的话就直接终止了)
我去搜索了我的问题,但方法都不管用;
二.使用code running时终端无法弹出:
就是用code running运行时,终端无法探出成小窗口;
这就是我的所有问题,请资深人员帮忙解答一下!
网上的各种方法五花八门,基本上都是用了老旧的版本可能会出现各种各样的问题。
建议按照官网的步骤进行,根本不需要配置东西,直接就可以运行。
提供参考实例【VSCode配置C/C++环境】,链接:https://zhuanlan.zhihu.com/p/87864677/
【同你的问题表述,目前只能建议你先参考这个实例】
配置只看你打开文件夹下的.vscode,子文件夹下的配置没用。
配置基本就是编译问题,https://www.cnblogs.com/bpf-1024/p/11597000.html
本人亲测有效
还有一个更好的建议在linux里面安装VScode,利用gcc g++在VScode上视图打开终端,可以利用命令编译个人认为这个比较好
若有帮助,还望采纳,点击回答右侧采纳即可。
vscode使用task.json来配置项目的构建过程。
打开命令面板(Ctrl+Shift+P)选择RunBuildTask(Ctrl+Shift+B),如果当前工作空间没有task.json配置文件此时会出现提示选择ConfigureTaskRunner自动创建task.json。该配置文件在工作空间的.vscode目录下,这个目录也是存放vscode配置的文件夹。vscode默认的task配置文件中给出了执行tsc和gulp模板配置。
简单介绍一下task.json的写法{"version":"0.1.0",//要使用的命令或者可执行文件的路径"command":"tsc",//对应command参数,是否是一个命令,否则为执行文件路径"isShellCommand":true,//是否在执行task任务时显示控制台窗口"showOutput":"always",//对应command参数指定程序的参数"args":["-p","src","--allowJs","-w"],//不太明白这个,基本用不到"problemMatcher":"$tsc",}
你把 tasks.json 中的这段删掉:
"-fdiagnostics-color=always",
或者下载我这个能用的vscode工程模板
https://gitee.com/churuxu/project_template
这个问题可能是由于gdb.exe的路径配置错误导致的。在launch.json文件中,配置了miDebuggerPath的路径,请确认路径是否正确,是否存在该文件。如果路径和文件都没问题,建议重启VSCode试试。
另外,在launch.json文件中,配置了多个configurations,请确认使用的是哪一个。
还有,如果你的项目是由makefile编译的,那么你需要在tasks.json文件中配置编译和调试命令,launch.json文件中需要使用preLaunchTask属性来指向编译任务。
如果以上建议都没有解决问题,建议提供更多的配置信息和错误信息,以便于更好的分析问题。
讲道理,你这个简单的程序vscode默认的配置就能debug了,你有打断点试试吗?还有就是vscode本质上就是一个编辑器,你要是想图方便的话,我推荐用Visual Studio吧,这个IDE很强大。