初次使用vscode配置方法

2023-11-07

从vs换到vscode,花了一天时间终于把各种问题解决,吐血整理,如有疑问,可以在评论区交流。

1.安装c/c++扩展,安装v1.8.4版,稳定

2.安装code runner,右键即可运行代码,操作简单

3.安装mingw

安装在线版会出现“gcc : 无法将“gcc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,所以建议直接安装离线版,如图所示红框的是离线版,官网下载要一两个小时,我把离线包链接给大家放这了https://store7.lanzoug.com/0121220032726708bb/2020/11/16/921f0f0ce86c89ae5a141ca6d902d23d.7z?st=kRzjvaAa_Umn7m4esPA88Q&e=1674311778&b=CSMBOQUzUQtWNQdlC3YBPVEqC2YGKVdhB3kAf1EzVzkHMAprCXpRMQR8VndVbFI4UTdbNVF9UyZRZw5rVX9VJQkvAV4Fc1FiVi4HIws_bAXNRNAt5BjBXKw_c_c&fi=32726708&pid=117-176-156-56&up=2&mp=0&co=1

 这个链接是第四个,也就是x86_64-win32-seh,64位系统选这个最好,性能稳定

4.准备3个文件launch.json, tasks.json, settings.json

在工作区文件夹下新建.vscode文件夹,在文件夹下创建3个文件命名为上述3个名字。
launch.json

把以下内容复制进去
 



{
    "version": "0.2.0",
    "configurations": [{
        "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
        "type": "cppdbg", // 配置类型,对于C/C++可认为此处只能是cppdbg,由cpptools提供;不同编程语言不同
        "request": "launch", // 可以为launch(启动)或attach(附加)
        "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
        "args": [], // 程序调试时传递给程序的命令行参数,一般设为空
        "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
        "cwd": "${workspaceFolder}", // 调试程序时的工作目录,此为工作区文件夹;改成${fileDirname}可变为文件所在目录
        "environment": [], // 环境变量
        "externalConsole": true, // 使用单独的cmd窗口,与其它IDE一致;为false时使用内置终端
        "internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
        "MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但我没试过lldb
        "miDebuggerPath": "gdb.exe", // 调试器路径,Windows下后缀不能省略,Linux下则不要
        "setupCommands": [
            { // 模板自带,好像可以更好地显示STL容器的内容,具体作用自行Google
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": false
            }
        ],
        "preLaunchTask": "Compile" // 调试前执行的任务,一般为编译程序。与tasks.json的label相对应
    }]
}

tasks.json
把以下内容复制进去
如果是用c++ command改成g++



{
    "version": "2.0.0",
    "tasks": [{
        "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应
        "command": "gcc",   // 要使用的编译器,C++用g++
        "args": [
            "${file}",
            "-o",    // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
            "${fileDirname}/${fileBasenameNoExtension}.exe",
            "-g",    // 生成和调试有关的信息
            "-m64",  // 不知为何有时会生成16位程序而无法运行,此条可强制生成64位的
            "-Wall", // 开启额外警告
            "-static-libgcc",     // 静态链接libgcc,一般都会加上
            "-fexec-charset=GBK", // 生成的程序使用GBK编码,不加这条会导致Win下输出中文乱码;繁体系统改成BIG5
            "-D__USE_MINGW_ANSI_STDIO", // 用MinGW写C时留着,否则不需要,用于支持printf的%zd和%Lf等
        ], // 编译的命令,其实相当于VSC帮你在终端中输了这些东西
        "type": "process", // process是把预定义变量和转义解析后直接全部传给command;shell相当于先打开shell再输入命令,所以args还会经过shell再解析一遍
        "group": {
            "kind": "build",
            "isDefault": true // 不为true时ctrl shift B就要手动选择了
        },
        "presentation": {
            "echo": true,
            "reveal": "always", // 执行任务时是否跳转到终端面板,可以为always,silent,never。具体参见VSC的文档,即使设为never,手动点进去还是可以看到
            "focus": false,     // 设为true后可以使执行task时焦点聚集在终端,但对编译C/C++来说,设为true没有意义
            "panel": "shared"   // 不同的文件的编译信息共享一个终端面板
        },
        "problemMatcher":"$gcc" // 捕捉编译时终端里的报错信息到问题面板中,修改代码后需要重新编译才会再次触发
        // 本来有Lint,再开problemMatcher就有双重报错,但MinGW的Lint效果实在太差了;用Clangd可以注释掉
    }]
}

settings.json
同上
 



{
    "files.defaultLanguage": "c", // ctrl+N新建文件后默认的语言
    "editor.formatOnType": true,  // 输入分号(C/C++的语句结束标识)后自动格式化当前这一行的代码
    "editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳转点,不用这个就必须手动触发Intellisense了
    "editor.acceptSuggestionOnEnter": "off", // 我个人的习惯,按回车时一定是真正的换行,只有tab才会接受Intellisense
    // "editor.snippetSuggestions": "top", // (可选)snippets显示在补全列表顶端,默认是inline

    "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入
    "code-runner.executorMap": {
        "c": "gcc '$fileName' -o '$fileNameWithoutExt.exe' -Wall -O2 -m64 -lm -static-libgcc -fexec-charset=GBK -D__USE_MINGW_ANSI_STDIO && &'./$fileNameWithoutExt.exe'",
        "cpp": "g++ '$fileName' -o '$fileNameWithoutExt.exe' -Wall -O2 -m64 -static-libgcc -fexec-charset=GBK && &'./$fileNameWithoutExt.exe'"
        // "c": "gcc $fileName -o $fileNameWithoutExt.exe -Wall -O2 -m64 -lm -static-libgcc -fexec-charset=GBK -D__USE_MINGW_ANSI_STDIO && $dir$fileNameWithoutExt.exe",
        // "cpp": "g++ $fileName -o $fileNameWithoutExt.exe -Wall -O2 -m64 -static-libgcc -fexec-charset=GBK && $dir$fileNameWithoutExt.exe"
    }, // 右键run code时运行的命令;未注释的仅适用于PowerShell(Win10默认)和pwsh,文件名中有空格也可以编译运行;注释掉的适用于cmd(win7默认)、PS和bash,但文件名中有空格时无法运行
    "code-runner.saveFileBeforeRun": true, // run code前保存
    "code-runner.preserveFocus": true,     // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false
    "code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息,默认false
    "code-runner.ignoreSelection": true,   // 默认为false,效果是鼠标选中一块代码后可以单独执行,但C是编译型语言,不适合这样用
    "code-runner.fileDirectoryAsCwd": true, // 将code runner终端的工作目录切换到文件目录再运行,对依赖cwd的程序产生影响;如果为false,executorMap要加cd $dir

    "C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序)
}

配置一次之后就能自动生成

5.配置c/c++ config(一个自动补全代码的功能)

ctrl+shift+p进入配置界面c/c++  configurations
配置3个选项

(1)编译器路径
把gcc.exe/g++.exe路径添加进去,注意要具体到gcc.exe或g++.exe,比如我的

(2)包含路径include path
把代码使用的头文件路径填进去
(3)intellisense mode
根据自己gcc的版本选择,我这里是windows-gcc-x64


参考文章
Visual Studio Code 如何编写运行 C、C++ 程序? - 知乎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初次使用vscode配置方法 的相关文章

  • Linux 上 Objective-C 的 IDE [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在学习 Objective C 我想知道在哪里可以找到 Linux 上 Objective C 的
  • Eclipse 中有重新运行最近启动的程序的快捷方式吗?

    我使用 Eclipse 最常做的事情之一就是重新运行上一个程序 我这样做是为了运行 gt 运行历史记录 gt 最上面的项目 有没有快捷键可以做到这一点 I know of CTRL F11 but this does not work fo
  • 如何在 Visual Studio 的输出窗口中隐藏异常类型?

    我正在测试一些东西 输出窗口中充满了异常 如何过滤输出窗口中显示的异常类型 Note 在这种情况下 不可能避免异常 据我所知 隐藏异常类型是不可能的 但要过滤掉所有异常消息 请右键单击输出窗口并取消选中 异常消息
  • PyCharm:Scapy 未解决的参考

    我正在开发一个使用 scapy 用 python 编写的网络工具 我使用 Pycharm 作为 IDE 我的代码有效 因此 如果我运行它 一切都会按预期进行 我的问题是 PyCharm 给了我一些错误 它标志着每次使用IP TCP Ethe
  • 有什么好的可视化 HTML5 编辑器或 IDE? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 看起来 Dreamweaver CS5 将在几年内 实际上是几周 尝试使 HTML5 变得更加流畅 似
  • 编写自定义重构脚本的最佳 Java 库是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 包 android.support.v4.app 不存在;在Android Studio 0.8中

    我最近将 android studio IDE 更新至 0 8 以与新的 android L SDK 配合使用 首先 我导入了一个已完成的 android 项目 该项目在旧版本的 android studio 中没有收到任何错误 在版本 0
  • Google Apps 脚本是否支持外部 IDE?

    我正在使用 Google Apps 脚本 想知道是否可以使用 Google 提供的编辑器之外的任何类型的编辑器 我购买了 Sublime Text 并且想使用它 Google 提供的那个很恶心 文本很小 尽管我有一个巨大的屏幕和语法颜色 我
  • 为什么 Git 中会忽略 IDE 特定的项目文件?

    我看到 Github 上发布的许多项目都有一个 gitignore文件明确排除与 IDE 相关的控制文件 这些控制文件广泛用于定义项目及其依赖项 这些可以是 sln对于 NET 或 project对于 Eclipse 我想问为什么这种做法被
  • 有没有便宜或免费的 VB6 编程 IDE? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用于 PHP 开发的 Eclipse PDT 与 NetBeans [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对于 PHP 开发 Eclipse PDT 与 NetBeans 相比如何 我刚刚买了一台装有 Windows 7 的新电脑 我开始设置
  • 如何在 android studio 中禁用 gradle '离线模式'? [复制]

    这个问题在这里已经有答案了 我是 android studio IDE 开发的新手 每次当我导入在 android studio 中开发的示例项目时 我都会收到此错误 没有缓存版本com android tools build gradle
  • Netbeans 将 css 变量显示为错误

    当我使用 css 变量时 我的 Netbeans IDE 显示错误 例如 这行代码将返回错误 root main bg color dad66f title color var main bg color 我在网上找到了这个解决方案 htt
  • 如何在 IntelliJ IDEA 中的当前文件上运行外部工具

    我需要通过 scp 将当前编辑的 JSP 上传到服务器 我的 Windows 计算机上的路径上有 pscp 如何设置 intellij idea 以一键单击当前打开的文件来执行此操作 我可以在 eclipse 中设置它 通过 运行工具 和参
  • Aptana Studio 与 Eclipse [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • pytorch 的 IDE 自动完成

    我正在使用 Visual Studio 代码 最近尝试了风筝 这两者似乎都没有 pytorch 的自动完成功能 这些工具可以吗 如果没有 有人可以推荐一个可以的编辑器吗 谢谢你 使用Pycharmhttps www jetbrains co
  • 当从代码隐藏页面按 F7 时,如何使 Visual Studio 始终显示源视图而不是设计视图?

    The F7 key in Visual Studio it allows the user to switch between the code for a designer element e g a Windows Form or a
  • android studio 和 android SDK 捆绑的 eclipse 版本有什么区别

    我没有 Android 开发经验 我想开始编写应用程序 The 官方开发者工具页面 http developer android com tools index html包含两个不同 IDE 的链接 第一个包含捆绑的 ADT 版本Eclip
  • 设置 Emacs 进行 Erlang 编程

    Emacs 是 Erlang 编程的首选 IDE 有很多好的模式 distel erlware mode 默认的 erlang 模式 但是您对设置 Emacs 进行专业 Erlang 开发有何建议 按照中所述设置 erlang mode自述
  • 如何忽略 Pydev Eclipse 中特定的未定义变量

    我正在使用 Eclipse 和 Pydev 插件在 Windows 上编写跨平台 python 脚本 该脚本利用os symlink and os readlink 如果当前平台不是 NT 则使用方法 自从os symlink and os

随机推荐

  • Python技能树

    Python技能树 44条消息 三元表达式 进阶语法 CSDNPython技能树 输出偶数个数 不使用三元组 even count 1 if i 2 0 else 0 使用嵌套的三元组表达式统计数字频率 如果是2的倍数加1 如果是4的倍数加
  • python医学科研中能做什么-科研画图都用什么软件?

    作为一只理工狗 我们不仅可能需要熬夜编程 更需要在很多时候画图来展示自己的结果 如果不能用漂亮的图片来展示结果 别人对你的工作评价也许会大打折扣 这样熬夜编的程基本上算是白熬了 下面隆重向大家推荐十款主流画图软件 美好的生活从作出高品 bi
  • 实现一个vue3组件库 - scrollbar滚动条

    theme vue pro 前言 思来想去很久 我都不知道该最先介绍哪一个组件才好 虽然我写的第一个组件是button按钮 但是也是因为简单所以第一个写 逻辑代码不是很多 样式倒是一大堆 感觉不适合用作开篇介绍 最后选择了scrollbar
  • matlab练习程序(最大似然估计)

    clear all close all clc randn seed 0 一维情况 mu 0 N 100000 S 5 data mvnrnd mu S N me mean data S2 1 N sum data me 2 二维或多维情况
  • idea下方控制台显示多个springboot项目

    1 在idea打开View gt Tool Windows gt Services 2 添加服务 选择Spring Boot 3 效果图
  • ChatGPT的前世今生——混沌初开

    目录 ChatGPT的前世今生 混沌初开 ChatCPT简介 ChatCPT是什么 ChatCPT的火爆程度 ChatCPT火爆的原因 1 功能强大 应用范围广泛 2 训练数据量大 模型效果好 3 优秀的商业模式 OpenAI公司 公司创始
  • HTML5 canvas标签-2 简单的3种滤镜

    在发现canvas有这么多功能后 我首先尝试着去做一些滤镜 最基本的就是胶片 这个在w3school上有demo 假设原本颜色为rgb r g b 只需要将它变成rgb 255 r 255 g 255 b 即可 原图处理后的 for var
  • Layui项目实战

    使用语言 C Js Html 使用框架 MVC Layui 使用插件 JQuery Layui 一 Layui父窗体前端代码 1 Html代码 div class layui col md12 style padding 8px div c
  • (Linux无线网卡WIFI上网 一 )USB-WIFI驱动移植

    导航 Linux无线网卡WIFI上网 一 USB WIFI驱动移植 Linux无线网卡WIFI上网 二 WPA SUPPLICANT Linux下的wifi管理工具移植 Linux无线网卡WIFI上网 三 嵌入式Linux下的WIFI使用
  • 常见十四种的Java算法

    一 简单列出常见的Java中14种算法 序号 简称 英文 简介 1 二分查找法 Binary Search 二分查找要求线性表必须采用顺序存储结构 而且表中元素按关键字有序排列 2 冒泡排序算法 Bubble Sort 它重复地走访过要排序
  • python搭建ip池

    在爬取网站的时候我们有时候会遭受封ip等显现 因此我们需要搭建自己的ip池用于爬虫 代码过程简述 1 爬取代理ip网站信息 2 将获取的信息处理得到ip等关键信息 3 保存首次获取的ip信息并检测其是否可用 4 检测完毕将可用ip保存 搭建
  • 操作系统重点_重点:运动系统

    操作系统重点 The Locomotion System for Unity has previously been briefly mentioned on this blog but this post will go more in
  • 前端自定义网页鼠标右键菜单

    监听全局上下文菜单 document addEventListener contextmenu function e 阻止默认 e preventDefault 自定义鼠标右键菜单栏 console log 鼠标右击
  • 高并发下的订单和库存处理

    介绍 前提 分布式系统 高并发场景 商品A只有100库存 现在有1000或者更多的用户购买 如何保证库存在高并发的场景下是安全的 预期结果 1 不超卖 2 不少卖 3 下单响应快 4 用户体验好 下单思路 下单时生成订单 减库存 同时记录库
  • IDEA-idea中解决Java程序包不存在问题

    新导入的JavaWeb项目在编译时报出Error 18 33 java 程序包com google common collect不存在的错误 看看这是什么东西 原来是google相关包 这个包的下载地址 https www mvnjar c
  • JavaWeb~网页刷新/前端构造HTTP请求(form表单、ajax异步构造)/同步与异步/封装ajax/jQuery库引入

    文本目录 网页刷新 网页前端构造HTTP请求 form表单构造 ajax构造各种请求 ajax介绍 什么是同步 异步请求 同步异步区别理解 什么情况下使用ajax ajax运行机制 代码举例 封装ajax方法 网页刷新 F5和ctrl f5
  • 最新PMP/PMBOK Guide 6th Edition项目管理知识体系指南中文第六版

    http www hellokittycn com chapter 1262
  • 多技术融合推动,元宇宙应用破局向前

    报告编委 黄勇 爱分析合伙人 首席分析师 文鸿伟 爱分析高级分析师 外部专家 按姓氏拼音排序 唐虓 艾迪普科技 融合创新中心总经理 特别鸣谢 按拼音排序 报告摘要 元宇宙作为下一代互联网的典型代表 很可能将是人类数字化生存的终极形态 将带来
  • RTT下移植LVGL到W601_文件系统移植

    RTT下移植LVGL到W601 显示驱动移植 声明 个人学习笔记 不保证正确 参考资料 移植参考 DFS参考 图片 图片在线转换 环境 win10 keil5 硬件 正点原子w601开发板 步骤流程 1 在显示驱动移植完成的基础上添加tf卡
  • 初次使用vscode配置方法

    从vs换到vscode 花了一天时间终于把各种问题解决 吐血整理 如有疑问 可以在评论区交流 1 安装c c 扩展 安装v1 8 4版 稳定 2 安装code runner 右键即可运行代码 操作简单 3 安装mingw 安装在线版会出现