• Windows下配置VSCode使用mingww64的gcc、g++编译器和GDB调试器


    安装准备
    (1)安装Visual Studio Code;
    (2)安装 C/C++扩展插件; 
    (3)下载安装mingw-W64;
    (4)设置添加环境变量 ;
    (5)检查确认mingw-w64的安装 
    创建Hello World工程
    (1)添加源代码;
    (2)编译helloworld.cpp;
    (3)调试helloworld.cpp;
    (4)C/C++配置;

    安装准备

    在本篇开始之前,需要完成以下准备:

    (1)安装Visual Studio Code;

    上一篇文章已经介绍了VSCode软件的下载安装,这里就不介绍了;

    (2)安装 C/C++扩展插件;

    上一篇文章已经介绍了扩展插件的安装,这里就不介绍了;

    在扩展商店搜索到的C/C++扩展插件如下图所示;

    87373bb015971de15b4aa6288cb1819e.png

    (3)下载安装mingw-W64

    可以通过mingw-w64官网(http://www.mingw-w64.org)或SourceForge网站下载mingw-w64;

    mingw-w64在sourceforge网站的下载链接为:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/

    在sourceforge网站找到mingw的下载页面,看到MinGW-w64-for 32 and 64 bit Windows,如下图所示;

    33a862d8f3b2d0e4e3c52cfaf3e159b5.png

    拖动网页滚动条到最下方,找到下图所示的内容。

    8e9d56539c08c77362d022c87353fff3.png

    MinGW-W64 Online Installer:这里的MinGW-W64-install.exe文件不是完整的安装包,需要联网下载安装包(这里暂不介绍);

    MinGW-W64 GCC-8.1.0:这里可以下载到mingw-w64的离线安装包;此处选择GCC-8.1.0中的x86_64-win32-seh;

    下载的文件为x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z压缩包,将解压后的文件夹放到电脑中某个位置,比如放到D:Program Filesmingw-w64文件夹中,那么bin文件夹所在的完整路径就是D:Program Filesmingw-w64x86_64-8.1.0-release-win32-seh-rt_v6-rev0bin;

    (注意:一些开发工具的路径文件夹中最好不要有空格,我这里Program Files中是有空格,但不影响mingw-w64使用)

    (4)设置添加环境变量

    需要在电脑的环境变量中添加mingw-w64的bin文件夹路径。

    在电脑的Windows图标(开始图标)上右键,点击设置,如下图所示;

    bb9d7b0a46501cd029901e4199aa3ddc.png

    在Windows设置的搜索框中,搜索环境变量,点击编辑系统环境变量;

    529ed8f7b075935427d7c56df2ca8fc3.png

    在弹出的对话框中点击环境变量;(也可以右键“此电脑”→属性→高级系统设置,弹出此对话框)

    f04495c36bdd248810294d610979d1d0.png

    在系统环境变量中,选中Path,点击编辑;

    d6c69dff3a6653cd0104e8cbde56d0d1.png

    然后,点击新建,将mingw-w64的bin文件夹完整路径(D:Program Filesmingw-w64x86_64-8.1.0-release-win32-seh-rt_v6-rev0bin)添加进去,点击确定。

    bf4d14a6dbda8df1b8508d18eaad6328.png

    (5)检查mingw-w64的安装

    为了检查mingw-w64是否正确安装和可用,打开cmd窗口,分别输入下面两条指令:

    g++ --version
    gdb --version

    显示下图所示界面,表示安装正确,并且可以正常使用。

    1932f3fb56aea37e3fa04f0c64dbf488.png

    创建Hello World工程

    (1)添加源代码

    可以在你的电脑某个位置,创建一个文件夹(比如Projects_VSCode),专门存放VSCode工程文件。在Projects_VSCode文件夹中,创建一个子文件夹helloworld。

    打开VSCode软件,依次点击菜单栏 文件→打开文件夹,找到并选中helloworld文件夹,点击选择文件夹;可以在资源管理器中看到打开的helloworld文件夹,此时里面没有任何文件;

    在helloworld右侧,点击新建文件按钮,并命名为helloworld.cpp;

    b4a4b6baba41087e3f62de699fcfcf21.png

    将以下代码添加到源文件中,并保存文件;

    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    int main()
    {
        vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
     for (const string& word : msg)
     {
            cout << word << " ";
     }
        cout << endl;
    }
    bf807096628b9d37bd67eb14eb9b573a.png

    (2)编译helloworld.cpp

    这一步将会创建tasks.json文件,告诉VSCode怎么编译程序;

    在菜单栏,依次点击终端→配置默认生成任务,在弹出的选择框中选择g++.exe build active file,将会自动创建.vscode文件夹和tasks.json文件;

    20fd7865eafb8cbbaa1ae68f335b7f70.png
    b85b5a72da2b520492d11628816ed471.png
    2f0743db8a5055f2be2b192e9735e9dc.png

    创建的tasks.json文件内容如下所示;

    {
     "version": "2.0.0",
     "tasks": [
     {
     "type": "shell",
     "label": "C/C++: g++.exe build active file",
     "command": "D:Program Filesmingw-w64x86_64-8.1.0-release-win32-seh-rt_v6-rev0bing++.exe",
     "args": [
     "-g",
     "${file}",
     "-o",
     "${fileDirname}${fileBasenameNoExtension}.exe"
     ],
     "options": {
     "cwd": "D:Program Filesmingw-w64x86_64-8.1.0-release-win32-seh-rt_v6-rev0bin"
     },
     "problemMatcher": [
     "$gcc"
     ],
     "group": {
     "kind": "build",
     "isDefault": true
     }
     }
     ]
    }

    回到helloworld.cpp文件,在菜单栏依次点击 终端→运行生成任务,或者使用快捷键Ctrl+Shift+B;

    编译完成后,在源代码下方弹出的终端窗口中,会显示编译是否成功的信息;如下图所示;

    ec1e21af76eaf3e0abe98a6fbdfa0e9d.png

    在终端窗口右侧点击+按钮,在新的终端窗口中输入dir,可以看到helloworld文件夹中生成了helloworld.exe文件;

    输入.helloworld.exe执行文件,窗口中显示出程序运行的结果;

    1b265b35c158c3c17a57d48f23bfb9c7.png

    (3)调试helloworld.cpp

    这一步将会自动生成launch.json文件,可以配置VSCode启动GDB调试器;

    依次点击菜单栏 运行→添加配置,选择C++(GDB/LLDB);

    在弹出的下拉选项中,选择g++.exe - 生成和调试活动文件;

    VSCode将会自动生成launch.json文件;

    7f3c32c67901ab2643834036df2f22b1.png
    4cd60a5650f7ce262a1dba20aea8cdcb.png
    8c2f5a4a05c5da4e9a938edf3e5207a3.png
    5f190f1ffafb04e5da4c9666b793d0de.png

    生成的launch.json文件里的内容,如下所示;

    {
     // 使用 IntelliSense 了解相关属性。 
     // 悬停以查看现有属性的描述。
     // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
     "version": "0.2.0",
     "configurations": [
     {
     "name": "g++.exe - 生成和调试活动文件",
     "type": "cppdbg",
     "request": "launch",
     "program": "${fileDirname}${fileBasenameNoExtension}.exe",
     "args": [],
     "stopAtEntry": false,
     "cwd": "${workspaceFolder}",
     "environment": [],
     "externalConsole": false,
     "MIMode": "gdb",
     "miDebuggerPath": "D:Program Filesmingw-w64x86_64-8.1.0-release-win32-seh-rt_v6-rev0bingdb.exe",
     "setupCommands": [
     {
     "description": "为 gdb 启用整齐打印",
     "text": "-enable-pretty-printing",
     "ignoreFailures": true
     }
     ],
     "preLaunchTask": "g++.exe build active file"
     }
     ]
    }

    回到helloworld.cpp文件,这样helloworld.cpp就是活动文件;

    依次点击菜单栏 运行→启动调试,或者使用快捷键F5;

    在下面的终端窗口中,将会出现调试的信息;

    0c4416b37228f4916cc021ec3c40895e.png

    这时程序里没有打上任何断点,可以在源文件某一行代码的前面打上断点,可以单步调试程序;

    可以将launch.json文件中的stopAtEntry修改为true,那么调试程序时,将会在main函数入口打上断点,自动停止;

    在窗口上方,也可以看到调试的按钮,如下图所示;

    在窗口左侧有变量、监视的窗口,在监视一栏中可以添加关注的变量;

    6b31f5d6bb3a489ca323325db07ebbd5.png

    (4)C/C++配置

    使用快捷键Ctrl'+Shift+P,打开命令面板;

    在命令面板中,输入并选中C/C++ 编辑配置(UI),将会弹出C/C++配置页面;

    e3e880621f4629cae3268d222850b8a6.png

    在C/C++配置页面,选择配置名称:Win32,编译器路径:D:/Program Files/mingw-w64/x86_64-8.1.0-release-win32-seh-rt_v6-rev0/bin/gcc.exe;

    配置完成后,点击资源管理器,可以看到在.vscode文件夹中自动生成了c_cpp_properties.json文件;

    6fb0d262e8a162ca38dd878bc8dbf58d.png

    c_cpp_properties.json文件中的内容如下所示;

    {
     "configurations": [
     {
     "name": "Win32",
     "includePath": [
     "${workspaceFolder}/**"
     ],
     "defines": [
     "_DEBUG",
     "UNICODE",
     "_UNICODE"
     ],
     "compilerPath": "D:/Program Files/mingw-w64/x86_64-8.1.0-release-win32-seh-rt_v6-rev0/bin/gcc.exe",
     "cStandard": "c11",
     "cppStandard": "c++17",
     "intelliSenseMode": "clang-x64"
     }
     ],
     "version": 4
    }

    如果程序中使用的头文件不在工作空间或标准头文件的路径中,可以在Include path中添加搜索的路径;

    至此,使用VSCode对程序的编译、调试介绍完了,并且根据配置步骤,自动生成了相应的配置文件taks.json、launch.json、c_cpp_properties.json。

  • 相关阅读:
    《Real Time 3D Terrain Engines Using C++ And DirectX9》(实时地形引擎)随书源码
    (转)ogreUML类图
    (转)导弹跟踪算法
    转:正则表达式语法
    读取数据
    Python lambda用法及其与def的区别
    转Vb6.0安装失败解决办法,完全卸载VB(提高班里win7没装上VB的可以看看,我实验成功了)
    vb imagelist 作用
    二叉树的实现
    转:Python语言编程学习资料(电子书+视频教程)下载汇总:
  • 原文地址:https://www.cnblogs.com/lidabo/p/16191437.html
Copyright © 2020-2023  润新知