彻底解决VScode C++调试的路径问题(配置PATH以及快捷键优化)

2023-11-06

彻底解决VScode C++调试的路径问题(配置PATH以及快捷键优化)

前言

用VScode调试C++的难题可谓是人尽皆知,引得各路神仙大佬来解决。目前的主流方法有改变运行程序的路径,参考这篇文章。还有改变本地的Unicode编码设置的,也非常管用。可是有时VScode的毒瘤更新会打乱原来的设置。所以今天我要介绍的,因该时最万能的了。

第一步 配置环境

下一个Mingw64,网上有很多教程这里不做过多赘述,setup文件在sourceforge.net上可以找到。也可以直接去官网下载安装程序mingw-get-setup.exe

在安装程序中,选择安装这两个文件

mingw32-base-bin

mingw32-base-bin

mingw32-gcc-g++-bin

在这里插入图片描述

选择Apply Changes

在这里插入图片描述

选择Apply

在这里插入图片描述

按部就班的安装就行了

安装完以后,打开控制版面,配置PATH,一共有四步
在这里插入图片描述

按完一堆确定后就完成了

大家可以在cmd中测试一下,效果图如下

在这里插入图片描述
在这里插入图片描述

在VScode中编译运行

首先在settings中改一下terminal的默认值,将其改为cmd(本人不太熟悉Powershell)

在这里插入图片描述

可以使用啦,编译时选择文件在终端中打开

在这里插入图片描述

指令跟Linux Terminal差不多,详见这里

在这里插入图片描述

普通优化

是不是觉得每次都写那么一大堆指令很麻烦,没事,terminal有自带的懒人方法。当你在终端中按上箭头键时,会自动显示上一条操作,下箭头正好相反。若需重复调用指令,那就上下来回找一找,找到自己用过的那条。

优化进阶

真正的最懒(shuang)优化——定义快捷键。是这样的,比如g++命令,按照普通优化,每次都得重打文件名,还是不够方便。没事,VScode有办法。

按Ctrl+P搜索keybinding.json,打开配置文件

在这里插入图片描述

加入快捷键,模板是这样的

    {
        //按键
        "key": " ",
        //调用的VScode命令
        "command": "workbench.action.terminal.sendSequence",
        //命令的内容
        "args": {
            //尽情发挥...
        }
    },

这里以我的快捷键作案例(分别是编译代码,运行执行程序,和删除执行程序)

// Place your key bindings in this file to override the defaults
[
    {
        "key": "ctrl+g",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
          "text": "g++ -o runner ${fileBasename}\u000D"
        }
    },
    {
      "key": "ctrl+r",
      "command": "workbench.action.terminal.sendSequence",
      "args": {
        "text": "runner.exe\u000D"
      }
    },
    {
      "key": "ctrl+d",
      "command": "workbench.action.terminal.sendSequence",
      "args": {
        "text": "del runner.exe\u000D"
      }
  },
]

这里很多人容易忽略的是这行注释

// Place your key bindings in this file to override the defaults

他说的是,此文件中自定义的快捷键会凌驾于原本快捷键功能之上。所以各位要做好research。不要定义Ctrl+C或Ctrl+V这类的常用快捷键。

大家可以用Ctrl+K Ctrl+S(两个都要打)来查看VScode中原来就已经被定义的快捷键功能。选择不常用的功能,用他的快捷键来自定义。

在这里插入图片描述

结语

在系统的cmd中,这些自定义的命令就不能用了。请大家注意一下

本文制作不易,请三连,请大家支持CSDN哦

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

彻底解决VScode C++调试的路径问题(配置PATH以及快捷键优化) 的相关文章

  • 混合模型优先和代码优先

    我们使用模型优先方法创建了一个 Web 应用程序 一名新开发人员进入该项目 并使用代码优先方法 使用数据库文件 创建了一个新的自定义模型 这 这是代码第一个数据库上下文 namespace WVITDB DAL public class D
  • 在 javascript 中实现固定位置会导致 Safari 滚动时出现抖动

    固定位置不适用于我的用例 因为它固定在浏览器窗口上 您可能会处于文本在屏幕右侧之外且无法到达的状态 无论如何 我尝试使用绝对定位 然后调整javascript中的 顶部 它在 Firefox 和 Chrome 中运行良好 但在 Safari
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • 如何将项目插入到特定索引处的空数组中?

    我想将一个项目插入到空数组的指定索引中 我看到有 Array prototype splice 方法 但是 如果我在空数组上使用 splice 它只会添加项目来结束数组 如下所示 var a a splice 3 0 item 3 cons
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • Array.of 与“[ ]”。何时使用 Array.of 而不是“[ ]”?

    当我发现时我正在读一些书Array of https developer mozilla org en docs Web JavaScript Reference Global Objects Array of 根据 MDN Array o
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c
  • Html5画布最热门的任意形状

    我正在尝试开发可以在画布中渲染图像和文本的程序 我尝试处理画布中图像的点击 但它适用于可矩形图像 我的问题 您是否知道处理单击画布中图像的可见部分 非透明部分 的解决方案或框架 我正在寻找 ActionScript hitTestObjec
  • 在 Firestore 文本字段中存储文本文件并删除换行符

    我正在尝试将 CSV 文件存储在 Cloud Firestore 内的文本字段中 然而 Firestore 正在删除所有换行符并将整个 CSV 文件存储为一行 这Firestore 数据类型文档 https firebase google
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • Safari 扩展将消息发送到特定选项卡

    有没有办法从全局页面发送消息到特定选项卡 我目前正在做的是 在创建选项卡时 注入的脚本会创建一个唯一的 ID 并将包含该编号的消息发送到全局页面 并且全局页面会保存该编号 如果全局页面需要发送一些数据到一个tab 即 tab 3 然后全局页
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内
  • 使用
    元素作为 JavaScript 代码的输入。这是最好的方法吗?

    各位 显然 我是编码新手 所以最近完成了一些有关 HTML 和 Javascript 的 Lynda 课程后 我的简单 HTML 页面遇到了困难 基本上 我想要的是使用 JavaScript 进行基本计算 让用户使用 HTML 输入两个数字

随机推荐