• vs code C语言环境搭建


    最近重温C语言,因为很多练习只是小程序,并不需要Clion和Codeblocks这样工程导向的编译软件,所以下载了vs code,并试图搜索相应的环境,在此过程中发现,网上许多vs code 的c/c++环境配置都是以c++为目标的,不能直接编译C语言,在参考了许多前辈的文章后,才有了本文,如有不妥之处,还望各位前辈海涵。


    0.参考资料

    https://blog.csdn.net/bat67/article/details/76095813

    https://hk.saowen.com/a/9598540e9e5ae7838bdd78c4cd6a19ffb167f374c811e92fdf0e595b71ad13db

    1.安装编译器

    https://sourceforge.net/projects/mingw/

    2.安装VS code

    https://code.visualstudio.com/Download 

    3.安装插件

    4.配置编译文件

    launch.json

    请注意,这一条请务必填写你自己的路径,让编译器找到gdb.exe。
    "miDebuggerPath": "C:\MinGW\bin\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
     1 {
     2     // 使用 IntelliSense 了解相关属性。 
     3     // 悬停以查看现有属性的描述。
     4     // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
     5         "version": "0.2.0",  
     6         "configurations": [  
     7             {  
     8                 "name": "C Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示  
     9                 "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
    10                 "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)
    11                 //"launchOptionType": "Local", // 調試器啟動類型,這裏只能為Local
    12                 "targetArchitecture": "x86", // 生成目標架構,一般為x86或x64
    13     
    14                 "program": "${cwd}\${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
    15                 "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
    16                 "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
    17                 "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录  
    18                 "environment": [],  
    19                 "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
    20                 "MIMode": "gdb",  
    21     
    22                 "miDebuggerPath": "C:\MinGW\bin\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
    23                 
    24                 "preLaunchTask": "gcc", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
    25                 "setupCommands": [  
    26                     {
    27                         "description": "Enable pretty-printing for gdb",  
    28                         "text": "-enable-pretty-printing",  
    29                         "ignoreFailures": true  
    30                     }  
    31                 ]  
    32             }  
    33         ]  
    34     }

    tasks.json

    {
        "version": "2.0.0",
        "command": "gcc",  // 編譯C++用g++,用MinGW和clang的自行修改。
        "args": ["${file}", "-o", "${fileBasenameNoExtension}.exe", "-g3", "-Og", "-Wall", "-static-libgcc", "-std=c11", "-fexec-charset=GBK", "-finput-charset=UTF-8"],  // 編譯命令參數,C++可用-std=c++14
        "problemMatcher": {
            "owner": "c",
            "fileLocation": ["relative", "${workspaceRoot}"],
            "pattern": {
                "regexp": "^(.*):(\d+):(\d+):\s+(warning|error):\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            } 
        }
    }
    
     

    c_cpp_properties.json

    {
        "configurations": [
            {
                "name": "Win32",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "_UNICODE"
                ],
                "compilerPath": "C:\MinGW\bin\gcc.exe",
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "clang-x64"
            }
        ],
        "version": 4
    }

    settings.json(该项是用于无缝切换C语言和c++的,但是博主现在没有搞懂,而且直接照搬前辈的配置会导致报错,暂时不建议添加此配置文件)

    // 將設置放入此文檔中以覆蓋默認值和用户設置。
    {
        "files.defaultLanguage": "c",
        "code-runner.runInTerminal": false,
        "code-runner.executorMap": {
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -Wall -g3 -Og -static-libgcc -std=c11 && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -Wall -g3 -Og -static-libgcc -std=c++14 && $dir$fileNameWithoutExt"
        }
    }

    5.大功告成

  • 相关阅读:
    HRBUST 1377 金明的预算方案
    51Nod 2649 完全背包
    计蒜客 T2129 采药
    计蒜客 T1408 矩形嵌套
    OpenJudge 2711 合唱队形
    51Nod 2080 最长上升子序列
    2021NUAA暑假集训 Day5 部分题解
    2021NUAA暑假集训 Day4 部分题解
    C++ 11 move constructor 何时调用?
    老外这样说英文
  • 原文地址:https://www.cnblogs.com/FlyDangerFox/p/9896655.html
Copyright © 2020-2023  润新知