C语言环境搭建

c语言环境搭建时出现的问题

C语言环境搭建

由于CSDN上出现较多的复制粘贴怪,导致在较新的VScode版本下,有些设置的名称明明已经更换,但是还是按照老版本的在复制粘贴所谓的“回答”,更有将不同人的答案拼接在一起的复制融合怪。今天就来解决这个问题。

在此将json文件详细注释,便于调整个人的参数

1 报错为launch: program "{workspaceRoot}EXEslbinary conversion.exe’ does not exist

大致出现的问题就是launch.json输出的是.out文件,而task.json运行的是.exe文件,那确实是不存在这个文件的,所以会报错

在进行初始化时,task.json我们可以直接让他自动生成:

首先,在”Terminal“菜单下点击”Configure Tasks…”子菜单。在随后出现的弹出框中选择“C/C++:gcc.exe生成活动文件”

若随后的弹出框中没有C/C++:gcc.exe生成活动文件,则检查你的mingW64是不是在配置环境变量时没加末尾的slash

like:D:\VScode\mingw64\bin(×),

​ D:\VScode\mingw64\bin\(√)

然后再按下F5就可以以同样的方法自动配置launch.json,为了避免每次调试都要选择”Debugger”,我们再“Run”->“Add Configuration…”

//launch.json
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "MyLaunch",              //  强制:就一个名字而已,但是是必须要有的(取任意自己喜欢的名字即可)
            "type": "cppdbg",                    //  强制:调试器的类型,Node debugger for  node, php for PHP , go for GO (C语言就固定是cppdbg)           
            "request": "launch",                 //  强制:launch/attach
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", // 可执行文件的路径 (根据实际情况调整需与tasks.json中的-o输出文件一致)
            "miDebuggerPath": "D:\\VScode\\mingw64\\bin\\gdb.exe",    //  强制:调试器的位置(特别注意:根据实际情况调整,且代表的是gdb.exe调试器程序的位置而不是编译器gcc.exe的位置。)
            "preLaunchTask": "C/C++: gcc.exe 生成活动文件",             //  调试前编译任务名称
            "args": [],                          //  调试参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",         //  当前工作目录
            "environment": [],                   //  当前项目环境变量
            "externalConsole": true,
            "MIMode": "gdb",                     //  调试器模式/类型
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

只要将二者协调起来就可以了

//task.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe build active file",
            "command": "D:\\VScode\\mingw64\\bin\\gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe" //就是这里
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "compiler: \"D:\\VScode\\mingw64\\bin\\gcc.exe\""
        },
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "D:\\VScode\\mingw64\\bin\\gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ]
}

注意,我们的gcc编译器地址要正确


C语言环境搭建
http://pikapikagfy.github.io/2024/03/05/C-0/
作者
PikaPikaGFY
发布于
2024年3月5日
许可协议