windows 下使用 vscode + mingw 完成简单 c 或 cpp 代码的运行与调试

这篇具有很好参考价值的文章主要介绍了windows 下使用 vscode + mingw 完成简单 c 或 cpp 代码的运行与调试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文为原链的镜像链接,更新可能不及时,如有能力,请访问原始链接。

参考

  1. 基于 VS Code + MinGW-w64 的 C 语言/C++简单环境配置,专致小白

安装

环境:Win10 21H2 19044.1381 + mingw + vscode 1.74.3 + C/C++ Extension Pack 插件

国内镜像盘: 链接 密码:1dcs

简单来说共分为 4 步

  1. 下载 mingwvscode插件 并安装
  2. 添加 mingw 编译链到系统环境变量 Path
  3. 拷贝 tasks.jsonlaunch.json 到要运行的代码目录.vscode文件夹中
  4. 修改 tasks.jsonlaunch.jsongccg++gdb 路径

安装 vscode 和插件

  • 下载 vscode 并安装
  • 安装 C/C++ Extension Pack 插件

配置 mingw

下载 mingw 编译链

在此处下载 windows 编译链,编译链命名方式如:系统-线程模型-异常处理模式

  • 系统
    • x84_64 64 位可执行文件
    • i686 32 位可执行文件
  • 线程模型
    • win32
    • posix
  • 异常处理方式

根据自己的系统选择,推荐下载最新的,我这里是 64 位系统,线程模型选择 win32,异常模式随便选

选择 x86_64-win32-seh
windows执行cpp文件,vscode,windows,c语言,c++

需注意:win 下如线程模式使用 posix,会造成 powershell 下无法通过编译链生成 a.exe,推荐使用如下图中工具链
windows执行cpp文件,vscode,windows,c语言,c++

配置环境变量

将在下载 mingw 编译链中下载的编译链解压到路径 xxx 下,记住该路径

windows 键 + R 打开 运行,输入 sysdm.cpl,回车进入
windows执行cpp文件,vscode,windows,c语言,c++

点击 高级
windows执行cpp文件,vscode,windows,c语言,c++

点击 环境变量 添加 mingw 工具链路径到 Path
windows执行cpp文件,vscode,windows,c语言,c++

下载后解压的工具链路径:
windows执行cpp文件,vscode,windows,c语言,c++
推荐在系统变量中的 Path 下添加刚刚下载的编译链的路径 xxx + \bin

比如你下载后解压的路径为 C:\1\mingw64,那么在此处就要添加 C:\1\mingw64\bin
windows执行cpp文件,vscode,windows,c语言,c++
环境变量配置:添加后不要忘记点确定

windows执行cpp文件,vscode,windows,c语言,c++

配置 vscode 环境

将下述代码保存为launch.json 或者直接使用镜像中的 .vscode中的launch.json,修改配置文件中 launch.jsongccg++gdb 路径

launch.jsonmiDebuggerPath 修改为你本地 mingw 中的 gdb 路径

{
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\1\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ],
    "version": "2.0.0"
}

将下述代码保存为tasks.json 或者直接使用镜像中的 .vscode中的tasks.json,

tasks.json 中的 cbuildcommand 改为你本地 gcc 的路径,cppbuildcommand 改为你本地 g++ 的路径

{
    "tasks": [
        {
            "type": "cbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "C:\\1\\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": "gdb调试器生成的任务。"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\1\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$g++"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "gdb调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

最终 Vscode 工程目录结构如下,测试代码来自 hello-algo,在此感谢大佬 @Krahets


C:\Users\Administrator\Desktop\TEST\code>tree /F
文件夹 PATH 列表
卷序列号为 DE24-5DAC
C:.
├─.vscode
│      launch.json
│      tasks.json
│
└─codes
    ├─c
    │  │  CMakeLists.txt
    │  │
    │  ├─chapter_array_and_linkedlist
    │  │      array.c
    │  │      CMakeLists.txt
    │  │      linked_list.c
    │  │
    │  ├─chapter_computational_complexity
    │  │      CMakeLists.txt
    │  │      time_complexity.c
    │  │      worst_best_time_complexity.c
    │  │
    │  ├─chapter_sorting
    │  │      bubble_sort.c
    │  │      CMakeLists.txt
    │  │      insertion_sort.c
    │  │
    │  ├─chapter_stack_and_queue
    │  │
    │  ├─chapter_tree
    │  │      binary_search_tree.c
    │  │      binary_tree.c
    │  │      binary_tree_bfs.c
    │  │      binary_tree_dfs.c
    │  │      CMakeLists.txt
    │  │
    │  └─include
    │          CMakeLists.txt
    │          include.h
    │          include_test.c
    │          list_node.h
    │          print_util.h
    │          tree_node.h
    │
    ├─cpp
    │  │  .gitignore
    │  │  CMakeLists.txt
    │  │  Makefile
    │  │
    │  ├─chapter_array_and_linkedlist
    │  │      array.cpp
    │  │      linked_list.cpp
    │  │      list.cpp
    │  │      my_list.cpp
    │  │
    │  ├─chapter_computational_complexity
    │  │      leetcode_two_sum.cpp
    │  │      space_complexity.cpp
    │  │      time_complexity.cpp
    │  │      worst_best_time_complexity.cpp
    │  │
    │  ├─chapter_hashing
    │  │      array_hash_map.cpp
    │  │      hash_map.cpp
    │  │
    │  ├─chapter_searching
    │  │      binary_search.cpp
    │  │      hashing_search.cpp
    │  │      linear_search.cpp
    │  │
    │  ├─chapter_sorting
    │  │      bubble_sort.cpp
    │  │      insertion_sort.cpp
    │  │      merge_sort.cpp
    │  │      quick_sort.cpp
    │  │
    │  ├─chapter_stack_and_queue
    │  │      array_queue.cpp
    │  │      array_stack.cpp
    │  │      deque.cpp
    │  │      linkedlist_queue.cpp
    │  │      linkedlist_stack.cpp
    │  │      queue.cpp
    │  │      stack.cpp
    │  │
    │  ├─chapter_tree
    │  │      binary_search_tree.cpp
    │  │      binary_tree.cpp
    │  │      binary_tree_bfs.cpp
    │  │      binary_tree_dfs.cpp
    │  │
    │  └─include
    │          include.hpp
    │          ListNode.hpp
    │          PrintUtil.hpp
    │          TreeNode.hpp
    │  ...
    │
    ├─java
    │ ...
    ├─python
    │ ...
    ├─rust
    │ ...
    ├─swift
    │ ...

C:\Users\Administrator\Desktop\TEST\code>

测试

首先,通过 Vscode 打开工程(含有 .vscode 文件夹的目录),在打开 c 文件,根据右上角选择调试还是运行,也可以通过快捷键调试(F5)

windows执行cpp文件,vscode,windows,c语言,c++

如下为调试过程中的截图:

gdb 调试 c 文件

windows执行cpp文件,vscode,windows,c语言,c++

gdb 调试 cpp 文件
windows执行cpp文件,vscode,windows,c语言,c++文章来源地址https://www.toymoban.com/news/detail-715062.html

到了这里,关于windows 下使用 vscode + mingw 完成简单 c 或 cpp 代码的运行与调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux环境使用VSCode调试简单C++代码

    本文将通过演示一个简单C++代码的编译调试过程,介绍在VSCode中如何使用Linux环境下的GCC C++编译器(g++)和GDB 调试器(gdb)。 关于GCC、g++、gcc、gdb,这里不做详细介绍,如果感兴趣可以参考另一篇文章:详解C/C++代码的预处理、编译、汇编、链接全过程,里面有详细的解释。 看懂

    2024年02月04日
    浏览(50)
  • vscode源代码管理简单使用(默认上传github)

    在vscode中的插件管理输入如下后下载 点击文件--首选项--设置 点击右上角设置小图标   首先仓库文件一定是要git init是git所管理的 1.在代码文件夹下使用git init创建仓库 2.打开vscode的git管理  3.点击添加暂存区,再点击提交,可以输入提交内容 单个提交 全部提交到暂存区  

    2024年01月19日
    浏览(47)
  • llama.cpp LLM模型 windows cpu安装部署;运行LLaMA-7B模型测试

    参考: https://www.listera.top/ji-xu-zhe-teng-xia-chinese-llama-alpaca/ https://blog.csdn.net/qq_38238956/article/details/130113599 cmake windows安装参考:https://blog.csdn.net/weixin_42357472/article/details/131314105 1、下载: 2、编译 3、测试运行 参考: https://zhuanlan.zhihu.com/p/638427280 模型下载: https://huggingface.co/nya

    2024年02月15日
    浏览(52)
  • 使用vscode远程服务器,让代码在vscode关闭后也在服务器后台运行

    可以使用VScode的Remote-SSH插件来连接远程服务器,并在关闭了VScode后让训练代码在后台运行。 具体的步骤如下: 安装VScode和OpenSSH,确保你可以在本地终端使用ssh命令连接服务器。 在VScode的扩展页面搜索并安装Remote-SSH插件。 在VScode的左侧菜单栏选择SSH Targets,点击齿轮图标,

    2024年02月11日
    浏览(49)
  • VScode中使用python突然没有代码提示和语法检查,程序运行正常

    在使用vscode编写python程序时,突然没有代码提示,大概率是由于Pylance扩展模块引起的,可以先尝试重启它,不行的话,在安装其他版本,如下: 先禁用,再打开,然后重启vscode,一般就可以解决,不行的话,再切换其他版本。

    2024年02月03日
    浏览(54)
  • 使用Vscode 编辑器 导出、导入和运行Excel中的VBA代码

    前言 Excel自带的 Microsoft Visual Basic for Applications 编辑器常被人称为上古编辑器,的确不适合代码编辑,这是其一,其二是当系统语言与Excel的安装语言不一致时,往往出现乱码,看起来极不舒服,这时又需要更改系统语言,所以往往需要探索其他的VBA开发编辑器,经过一番探索

    2024年02月04日
    浏览(123)
  • llama.cpp LLM模型 windows cpu安装部署;运行LLaMA2模型测试

    参考: https://www.listera.top/ji-xu-zhe-teng-xia-chinese-llama-alpaca/ https://blog.csdn.net/qq_38238956/article/details/130113599 cmake windows安装参考:https://blog.csdn.net/weixin_42357472/article/details/131314105 1、下载: 2、编译 3、测试运行 参考: https://zhuanlan.zhihu.com/p/638427280 模型下载: https://huggingface.co/nya

    2024年02月16日
    浏览(41)
  • C++ 使用nlohmann/json和cpp-httplib 完成post请求

    最近公司要我项目里弄http 请求,我没用过。探索了这么点东西。 第一步:用vscode  和它的 rest client插件完成post。 在文件里填入大数据同事给我的内容,右键send request,就拉取到了这个车的点位们。  第二步;开始写代码,文件目录如下,include里放了json的头文件。     代

    2024年02月11日
    浏览(54)
  • Macbook M1使用vscode+iverilog+gtkwave实现Verilog代码的编译与运行

    最近在研究FPGA的开发,于是需要用到Verilog。但是手头上只有一台M1芯片的Macbook air,Vivado和Quatus在MacOS上似乎不太方便使用,险些陷入无尽的对于购买macbook的后悔中… 随后我在网上查找了大量的关于MacOS平台如何实现verilog的开发与编写的相关博客,都提到了使用 vscode+iveril

    2024年02月04日
    浏览(40)
  • vscode使用g++编译.c文件或.cpp文件

        vscode是一个跨平台、轻量级、插件非常丰厚的IDE,这里介绍在vscode里使用g++来编译.cpp文件。g++也叫GCC, 在Window中,是使用MinGW方式实现g++的,它分为32位和64位2个版本,其中,MinGW-64是64位的,MinGW-32是32位的。 1.1 下载g++ 8.1     下载GCC 64位 编译器,比如MinGW-W64 GCC-8.1,

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包