ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在VS Code中使用Mingw-w64

2021-02-24 02:35:23  阅读:361  来源: 互联网

标签:Code 路径 w64 json VS Mingw


在本篇教程,你配置Windows上的VS Code使用Mingw-w64中的g++和gdb来创建运行在Windows上的程序。

预先要求

为了成功完成本篇教程,你需要做下面几件事:

  1. 安装VS Code
  2. 安装VS Code的C++插件
  3. 安装Mingw-w64到一个没有空格的路径(比如C:/Program Files/这个路径就不行)。在本篇教程,我们假定安装在C:\Mingw-w64。
  4. 把Mingw-w64中的bin文件夹加入到Windows的PATH环境变量
    1. 在windows搜索栏键入“cmd”,然后选择命令提示符
    2. 在命令行,使用setx把Mingw-w64的bin路径加入系统路径,实际路径取决于你安装的Mingw-w64的版本和位置。一个例子:setx path "%path%;c:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin"。
    3. 关闭控制台窗口,因为在这个窗口新路径并不可用。

创建workspace

在一个新DOS的命令提示符里创建一个新文件夹命名为projects,在这里存放你的所有VS Code项目。再创建一个子文件夹命名为helloworld,进入这个文件夹,然后在其中打开VS Code。这个过程的命令如下:

mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .

code.命令会在当前目录打开VS Code,并把这个目录作为你的工作空间(workspace)。在使用智能感知,编译和debug之前,我们首先要在VS Code上配置Mingw-w64。完成配置时,我们会在一个名为.vscode的子文件夹中有下面三个文件:

  1. c_cpp_properties.json (编译器路径和智能感知设置)
  2. tasks.json (指示编译的信息)
  3. launch.json (debugger的设置)

配置编译器路径

1. 按下Ctrl+Shift+P打开命令调色盘(Command Palette),它看起来是这样的:

2. 输入“C/C++”然后在下拉表里选择Edit Configurations(UI)。这会打开C/C++ IntelliSense Configurations页面。你在这里做出的修改,VS Code会把它们都写进。vscode文件夹下的c_cpp_properties.json文件。

3. 找到Compiler path项,VS Code会试图填进一个基于你的系统的默认编译器。它首先寻找MSVC编译器,然后找Windows的Linux子系统(WSL)里的g++,然后才是Mingw-w64的g++。如果你安装了VS或WSL,你要改一下这里,如果你在C:/mingw-w64目录安装的8.1.0版本的Mingw-w64,使用Win32线程和SEH异常处理,那么路径会看起来是这样:C:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin\g++.ex 。如果你安装时选择了不同的选项,则路径也会有区别。

Compiler path项的设置非常重要。插件使用它推断C++标准库头文件的位置。当插件知道这些文件在哪,它会在你写代码时提供许多有用的信息。这些信息叫做智能感知(IntelliSense)。

4. 把智能感知模式(IntelliSense mode)设为gcc-x64

当你的程序包括既不来自你的工作空间,又不来自标准库路径的头文件时,你只需修改Include path设置。

VS Code把这些设置放在了.vscode/c_cpp_properties.json。如果你直接打开这个文件,它看起来差不多是这样的。

{
  "configurations": [
    {
      "name": "Win32",
      "includePath": ["${workspaceFolder}/**", "${vcpkgRoot}/x86-windows/include"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "windowsSdkVersion": "10.0.17763.0",
      "compilerPath": "C:\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "${default}"
    }
  ],
  "version": 4
}

创建一个编译任务(build task)

下一步,创建tasks.json文件来告诉VS Code如何编译程序。这个任务会启动g++编译器基于源文件创造一个可执行文件。

  1. 从主菜单,选择 View > Command Palette 输入“task”然后选择 Tasks:Configure Default Build Task. 在下拉菜单,选择 Create tasks.json file from template ,然后选择 Others 。VS Code创建一个小型的 tasks.json文件,并在编辑器里打开。
  2. 进入文件,并把整个文件内容替换为下面的代码片段:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build hello world",
      "type": "shell",
      "command": "g++",
      "args": ["-g", "-o", "helloworld", "helloworld.cpp"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

command项指明了要运行的程序;在这里是g++.exe。

args数组指明了要传给g++的命令行参数。这些参数会按照数组中的顺序传给g++。

label的值是你在VS Code 命令调色盘(Command Palette)里能看到的。你可以按照自己的喜好给它命名。

isDefault:true 在group对象里。它指明了这个任务会在按下快捷键 Ctrl+Shift+B 时运行。这个属性是为了方便,如果你把它设置成false,你不得不从命令调色盘输入Run Build Task来运行。

配置debug设置

下一步,我们配置VS Code,使按下F5可以启动GCC debugger(gdb.exe)。

  1. 从命令调色盘,输入“launch”,然后选择 Debug:Open launch.json。然后选择 GDB/LLDB 环境。
  2. 关于程序,使用程序名 helloworld.exe (取决于你在tasks.json填的什么)。调整miDebuggerPath值来匹配你的mingw-w64的安装路径。
  3. 默认情况下,C++会在main函数的第一行加上一个断点。stopAtEntry的值如果是true,debugger会在第一行暂停。如果你想忽略它,可以设置为false。
  4. 可选地,把externalConsole设置成true可以在外部的控制台运行程序。

当你完成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": "(gdb) Launch",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/helloworld.exe",
      "args": [],
      "stopAtEntry": true,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": true,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

在VS Code中使用Mmingw-w64的配置到这里就完成了。这个配置只在当前工作空间(workspace)有效。如果要复用这个配置,只要把这三个JSON文件拷贝到新workspace的.vscode子文件夹下,然后更改一些配置,比如源文件名称等。

接下来的步骤

  • 浏览《VS Code用户指南》
  • 查看C ++扩展概述
  • 创建一个新的工作区,将.vscodeJSON文件复制到其中,为新的工作区路径,程序名称等调整必要的设置,然后开始编码!

 

本文是对VS Code文档的部分翻译,参考原文如下:https://code.visualstudio.com/docs/cpp/config-mingw

标签:Code,路径,w64,json,VS,Mingw
来源: https://www.cnblogs.com/yilangUAV/p/14439101.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有