VSCode C/C++开发编译与调试(Windows)

在VS code下调试dll 主要内容基于使用wrapper程序调试dll。 阅读详情


一. 开发环境搭建

1. 安装 mingw-w64 编译器 (GCC for Windows 64 & 32 bits)、Cmake 工具(可选)

  • mingw-w64 下载链接
  • Cmake 下载链接
  • 解压到自己想要的目录下后,添加系统环境变量
  • 测试环境变量是否设置成功,cmd 中分别输入g++ --verison 以及 cmake --version 是否正确输出版本信息

2. vscode 插件安装

  • C/C++
  • cmake(可选)
  • cmake tools(可选)

二. 简单编译示例

1. 在终端执行 g++ 命令 生成可执行文件

  • g++ 编译单文件,生成带调试信息的可执行文件

    g++ -g main.cpp -o single_file_exec
    

    main.cpp 单文件

    #include <iostream>
    using namespace std;
    int add(int a, int b)
    {
        return (a + b);
    }
    
    int main()
    {
    cout << "Hello world" << endl;
    return 0;
    }
    
  • g++ 编译多文件,生成带调试信息的可执行文件

    g++ -g main.cpp add.cpp -o multi_file_exec
    

    main.cpp

    #include <iostream>
    int add(int a, int b);
    using namespace std;
    int main()
    {
        int a = 5;
        int b = 10;
        cout << "a + b = " << add(a, b) << endl;
        return 0;
    }
    

    add.cpp

    int add(int a, int b)
    {
        return (a + b);
    }
    

2. 使用 make 生成可执行文件 (多文件)

  • 当前目录结构如下:

    │   Makefile
    │
    ├───include
    │       add.h
    │
    └───src
          add.cpp
          main.cpp
    

    main.cpp

    #include <iostream>
    #include "add.h"
    using namespace std;
    int main()
    {
       int a = 5;
       int b = 10;
       cout << "a + b = " << add(a, b) << endl;
       return 0;
    }
    

    add.cpp

    #include "add.h"
    int add(int a, int b)
    {
       return (a + b);
    }
    

    add.cpp

    #ifndef ADD_H
    #define ADD_H
    int add(int a, int b);
    
    #endif
    

    Makefile

    cpp_src := src/main.cpp src/add.cpp
    include_path := include
    debug :
       @echo $(cpp_src)
    
    
    exec : $(cpp_src)
       @g++ -g $^ -o $@ -I$(include_path)
    
    
    clean :
       @del \Q exec
    
    .PHONY : debug exec
    
  • 在当前目录的终端下执行以下命令生成可执行文件:

    mingw32-make.exe exec
    
  • 当前目录结构如下:

    │   exec.exe
    │   Makefile
    │
    ├───include
    │       add.h
    │
    └───src
          add.cpp
          main.cpp
    

3. 用 CMake 生成可执行文件

  • 当前目录结构如下:

    │   CMakeLists.txt
    │
    ├───include
    │       add.h
    │
    └───src
          add.cpp
          main.cpp
    

    CMakeLists.txt

    project(MYADD) # 项目名称
    
    include_directories (include)  # 头文件目录路径
    
    add_executable(exec src/main.cpp src/add.cpp)
    
  • vscode命令栏中执行CMake: Configure (第一次需选择Kit for cmake,选择本地安装的GCC mingw即可)生成build目录以及其内的文件

    这一步其实相当于以下命令

    mkdir build
    cd build
    cmake .. # 如果电脑本身装了 VS,第一次可能需运行 cmake -G "MingW Makefiles" ..
    

    当前目录结构如下:

    ├─build
    │  ├─.cmake
    │  │  └─api
    │  │      └─v1
    │  │          ├─query
    │  │          │  └─client-vscode
    │  │          └─reply
    │  ├─CMakeFiles
    │  │  ├─3.26.1
    │  │  │  ├─CompilerIdC
    │  │  │  │  └─tmp
    │  │  │  └─CompilerIdCXX
    │  │  │      └─tmp
    │  │  ├─CMakeScratch
    │  │  ├─objs
    │  │  │  └─exec.dir
    │  │  │      └─src
    │  │  └─pkgRedirects
    │  └─objs
    ├─include
    └─src
    
  • 在build目录的终端下执行以下命令生成可执行文件(在 build 里):

    mingw32-make.exe
    

4. 使用 vscode 中的 C/C++插件 生成可执行文件并 debug (推荐)

  • 单个文件
    当前目录结构如下:

     └───src # 用于存放源代码
        main.cpp
    
    1. 选择 main.cpp 文件,左侧工具栏 Run and Debug -> create a launch.json file;
      请添加图片描述

    2. 选择 C++(GDB/LLDB);请添加图片描述

    3. 选择 g++.exe;
      请添加图片描述

    4. 在.vscode 中生成配置文件 launch.json tasks.json;

      • tasks.json 用于生成可执行文件,本质也是用 g++命令生成可执行文件
      • launch.json 用于 debug 可执行文件
      • 请添加图片描述

      此时目录结构如下:

      ├───.vscode![请添加图片描述](https://img-blog.csdnimg.cn/928fed05f55046d9aace7e802a41abf9.png)
      
      │       launch.json
      │       tasks.json
      └───src
            main.cpp
            main.exe
      
    5. 此时就可以使用launch.json文件进行 debug 了

  • 多个文件
    当前目录结构如下:

     ├───include # 头文件目录
     │       add.h
     │
     ├───objs # 目标文件目录
     └───src # 源文件目录
           add.cpp
           main.cpp
    
    1. 按上述单个文件的步骤在.vscode 中生成配置文件 launch.json tasks.json,会报错,需要根据具体情况修改这两个配置文件;

    2. 按需修改配置文件
      launch.json

      {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
          {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            //   "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "program": "${fileDirname}\\..\\objs\\${fileBasenameNoExtension}.exe", // modified 指定要debug的可执行文件的路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "C:\\Program Files (x86)\\mingw64\\bin",
            "environment": [],
            "console": "externalTerminal",
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Program Files (x86)\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
              {
                "description": "为 gdb 启用整齐打印",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
              }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件" // 调用tasks.json,生成可执行文件,如果采用上述的三个方法生成可执行文件,则可把这句注释掉,然后debug
          }
        ]
      }
      

      tasks.json

      {
        "tasks": [
          {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\Program Files (x86)\\mingw64\\bin\\g++.exe",
            "args": [
              "-g",
              // "${file}",
              "${fileDirname}\\*.cpp", // modified
              "-o",
              // "${fileDirname}\\${fileBasenameNoExtension}.exe",
              "${fileDirname}\\..\\objs\\${fileBasenameNoExtension}.exe", // modified
              "-I${fileDirname}\\..\\include" // modified
            ],
            "options": {
              "cwd": "C:\\Program Files (x86)\\mingw64\\bin"
            },
            "problemMatcher": ["$gcc"],
            "group": {
              "kind": "build",
              "isDefault": true
            },
            "detail": "调试器生成的任务。"
          }
        ],
        "version": "2.0.0"
      }
      
    3. 此时可以正常使用launch.json文件进行 debug
      当前目录结构如下:

      ├───.vscode
      │       launch.json
      │       tasks.json
      │
      ├───include
      │       add.h
      │
      ├───objs
      │       main.exe
      │
      └───src
            add.cpp
            main.cpp
      
Win32中用VS生成属于自己的动态链接库(DLL)并应用 相信大家在windows操作系统中会遇到过DLL这么一个东西,其实它在windows平台上无所不在。这一篇来给大家讲下如何在win32平台创建属于自己的.dll文件,并且应用它。 阅读详情

相关推荐

VSCode项目打包详细步骤

C++项目打包详细步骤

weixin_45561430的博客 9894

搭建windows下基于VSCode的C++编译和调试环境

在您学习本教程时,您将看到在工作区的.vscode文件夹中创建了三个文件: 1、tasks.json (build instructions) 2、launch.json (debugger settings) 3、c_cpp_properties.json (compiler path and IntelliSense settings)

qijitao的专栏 2627

Windows11下快速配置C/C++开发环境:从MinGW到VSCode一站式指南

本文提供了一份在Windows11系统下快速搭建C/C++开发环境的详细指南。通过安装MinGW编译器并配置系统环境变量,再结合Visual Studio Code编辑器及其核心插件,手把手教你完成从环境配置到编写、编译、调试第一个程序的完整流程,旨在帮助开发者建立高效稳定的现代化开发环境。

weixin_27918373的博客 329

VSCode编译调试复杂C/C++项目

如何用VSCode来编译、调试复杂的C++项目,本篇为你解答

weixin_44151650的博客 7649

win10下vscode编译运行调试c和c++

之前一直用的sublime text,最近重装系统后电脑上什么c++编译器都没有,就心血来潮想试试vscode,于是学习了一下网上的博客,准备用vscode写代码+编译运行,用了几小时之后感觉和sublime差不多吧,嘻嘻。 vscode有好多好用的插件,可以上网搜一下,比如这个博客上就有很多。 文章目录1、下载安装mingw642、下载安装vscode3、编译运行C/C++4、调试5、致谢 ...

roMxx 2221

VsCode C/C++ 开发环境配置最全详细教程 Windows / Linux 均适用

vscode C/C++ 开发环境配置最全教程 windows/linux均适用 1.1.安装VSCode 下载地址:https://code.visualstudio.com/ 选择适合自己系统的下载之后安装就行, 注意:建议直接安装在C盘,方便配置,软件大小本身不大!!! ...

时光如水の总是无言的博客 3522

vscode配置c/c++教程

可以直接在Microsoft Store 安装,也可以去官网安装,链接在下面⬇️。

liuyuhan2的博客 5739

医学影像处理实战:用SimpleITK将CT数据重采样到统一尺寸(附完整代码)

本文针对医学影像分析中多源CT数据尺寸不一致导致深度学习模型训练失败的问题,提供了基于SimpleITK的实战解决方案。通过深入解析图像尺寸与间距的关系,详细阐述了如何通过调整体素间距进行重采样,而非简单补零,从而在保持图像物理尺寸不变的前提下,将数据统一到固定尺寸,确保输入网络的3D数据空间对齐且解剖信息准确。

weixin_29062671的博客 268

win vscode C++ 环境搭建

win vscode C++ 环境搭建 1.安装mingw-w64 下载、安装、配置环境变量 注:认准mingw-w64 powershell or cmd 键入命令gcc -v,若显示版本号,那就成功啦 2.安装C/C++插件 需要配置 3 个文件,阅读以下文件中的注释 c_cpp_properties.json tasks.json launch.json c_cpp_p...

sarono的博客 7366

从业10年的AI应用架构师:企业AI平台运营的4个核心经验,值得收藏

去年年底,我在某大型制造企业做AI咨询时,遇到了这样的场景:这不是个例。我接触过的10家企业中,有7家的AI平台都陷入了“技术自嗨”的陷阱——技术团队追求模型精度、功能完备性,却忽略了业务到底需要什么。如果你也遇到过类似问题:比如“模型准确率很高,但业务不买账”“AI项目上线后没人用”“投入产出比极低”,那么这篇文章的4个经验,可能会帮你避开这些坑。很多企业认为,AI平台就是“买一套工具+部署几个模型”。但实际上,企业AI平台的本质是“技术与业务的连接生态”:根据Gartner的报告,80%的企业AI项目失

AI 原生应用开发的博客 709

主动式桥梁防船撞预警系统的方案汇总

本系统以精密光电测高前端(2台,上下游各1台)、固态雷达(2台,上下游各1台)、AIS(1台)、偏航辅助前端(4台,上下游各2台)为核心,通过人工智能,对画面上的船舶目标进行深度学习、精确定位,再用系统集成方法将各设备有机结合在一起,构建成套的桥梁防撞主动预警系统,全天候监控过往船舶。主动式桥梁防船撞预警系统主要船舶监测采集单元、控制单元、船舶超高、偏航信息检测单元、以及视频监控单元组成,,通过声光警示、短信文字、船舶身份识别及海事对讲频道、视频录像取证等多种手段与船舶进行信息互动,主动防止船舶碰撞桥梁!

gdxixun的博客 966

如何搭建c语言gw开发环境,vscode配置编译运行c程序的环境

背景:1、VS Code只是一个代码编辑器,编译、运行这些活需要其他程序完成。2、C/C++ 编译器的选择,GCC/G++(MinFGW-w64)3、MinGW和MinGW-w64是两个不同的项目。MinGW本身已经很久没有更新了,故不推荐。为了方便,本文中的MinGW指的其实都是MinGW-w64。4、命令行的使用、系统变量的添加。安装vs code插件安装1、必要插件C/C++(ms-vsco...

weixin_26854475的博客 574

WSL2 Ubuntu 22.04安装NVIDIA驱动避坑指南:从驱动版本选择到CUDA环境验证

本文详细介绍了在WSL2 Ubuntu 22.04中安装NVIDIA驱动和配置CUDA环境的完整流程,包括驱动版本选择、环境变量设置以及常见问题解决方案。通过本指南,用户可以避免常见的安装陷阱,确保GPU加速环境正确配置,适用于深度学习开发和CUDA编程。

weixin_28419039的博客 460

Vscode配置C/C++环境

1.官网下载Vscode,一直点击下一步,直到安装在电脑上。打开Vscode. 2.点击扩展选项,如图,搜索下载安装图示前两个插件:C/C++和中文翻译包 2.先关闭VSCode,官网下载安装mingw编译器(一定要记得mingw的安装路径,能打开所在的文件夹) 3.配置环境变量 此电脑单击鼠标右键,打开属性 在窗口右边点击高级系统设置 在高级选项中点击环境变量 在系统变量中选中path并点击编辑 新建一个环境变量,路径为一个到bin的完整mingw编译器路径.(bin文件夹里有很多...

Hudiscount的博客 7万+

Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景

本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。

weixin_29227425的博客 592

MIKE水动力笔记4_制作网格

建立水动力模型前的重要一步就是制作网格,本文所讲内容就是如何在MIKE中制作网格。

晏长街的博客 2万+

VS Code的C/C++配置

Visual Studio Code在Windows下的C++配置 首先,VS code的官网上是这样讲的:Using GCC with MinGW 第一步,安装VSCODE 第二步,安装C/C++插件 在VSCODE里的大概这个位置,安装。 也可以利用快捷键Ctrl+Shift+X,搜索C/C++。 第三步,安装 MSYS2 MSY2的下载链接 一直下一步安装就可以了(预留2G硬盘) 第四步,在MSY2里安装database and base packages 打开MSY2 输入命令(推荐复制粘贴) p

gglin的博客 1054

使用 Python 和蒙特卡罗计算未来股价走势以及历史波动率和隐含波动率

蒙特卡罗模拟等工具使投资者能够洞察一系列潜在的未来。这远离了单纯的猜测,迈向了明智的、数据驱动的决策。

探索人工智能领域 706

VSCode配置C/C++环境

VSCode简介 VSCode是一款微软出的轻量级编辑器,它本身只是一款文本编辑器而已,所有的功能都是以插件扩展的形式所存在,想用什么功能就安装对应的扩展即可,非常方便,同时也支持非常多的主题和图标,外观比较好看,重要的是VSCode支持各大主流操作系统,包括Windows、Linux和Mac OS。所以就选择它作为自己的一款主要的编辑器来使用。 一、下载 首先,我们直接去VSCode官网下载对应操作系统版本的安装包即可。因为我使用的是64位的Windows,所以下载的是64位的exe文件。此处需要注意一下

qq_43331089的博客 6万+

【100%通过率】华为OD机试真题 Python 实现【最多组合直角三角形个数】【2023 Q1 | 100分】

有N条线段,长度分别为a[1]-a[n]。 现要求你计算这N条线段最多可以组合成几个直角三角形。 每条线段只能使用一次,每个三角形包含三条线段。

MISAYAONE的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

vscode调试C/C++的.vscode配置

vscode C/C++的.vscode配置 Author: mikudouble Created Time: April 4, 2022 7:44 PM Significance: ⭐⭐⭐

mikudouble的博客 3936

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VSCODE-Tutorials-将 GCC 与 MinGW 结合使用

VSCODE-Tutorials-将 GCC 与 MinGW 结合使用 官方网址 在本教程中,你将使用来自mingw-w64的 GCC C++ 编译器 (g++) 和 GDB 调试器配置 Visual Studio Code 以在Windows上运行创建运行的程序 配置 VS Code 后,您将在 VS Code 中编译和调试一个简单的 Hello World 程序。本教程不会教您 GCC、GDB、Mingw-w64 或 C++ 语言。对于这些主题,Web 上有许多很好的资源可用。 准备工作 Visual

weixin_42063746的博客 480

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vscode配置文件C++,上代码

windows环境,mac也有后面再上传 VSCode、mingw32(gcc\g++\gdb)、c/c++扩展 正常调试,没毛病 直接上配置文件 在 .vscode 文件夹中共4个文件 c_cpp_properties.json setting.json launch.json tasks.json c_cpp_properties.json 主要是标准库路径,要不要改与你安装的编译器路径有关,我这里当然是默认的安装文件路径啦 { "configurations": [ .

不会代码的码农的博客 414

VSC中C++的.vscode文件配置

c_cpp_properties.json { "configurations": [ { "name": "windows-gcc-x64", "includePath": [ "${workspaceFolder}/**" ], "compilerPath": "D:/MinGW-W64/mingw64/bin/gcc.exe", "cStandard": "c11", "cppStandard": "c

m0_46808930的博客 3006

VSCode配置C和C++语言

1.首先我们需要安装一下Mingw大概目录结构如下2.然后我们解压后就看到上面的一个页面,这时我们需要配置一下环境变量。在用户变量和系统变量都可以,只要是在path下就行。3.现在我们可以在cmd下测试一下。出现类似以下就代表成功了。现在我们再输入gcc -v -E -x c++ -,然后我们会出现下面的东西。我们可以看到 这几个路径,很重要。

阿七的博客 2356
上一篇: tensorboard的简单使用
下一篇: NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
~菜脯蛋~
博客等级 码龄9年 2粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值