IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> VSCODE-Tutorials-将 GCC 与 MinGW 结合使用 -> 正文阅读

[开发工具]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 Studio CodeMinGW-x64

这两者的安装与配置参考之前的博客,输入以下命令查看MinGW是否安装成功:

g++ --version
gdb --version

如果您没有看到预期的输出或者g++或者gdb没有一个公认的命令,请确保您的路径条目MinGW的-W64二进制位置在编译器位于匹配。

在这里插入图片描述

显示以上信息则代表安装成功。

创建Hello World

创建工作区

创建一个名为的空文件夹projects,您可以在其中放置所有 VS Code 项目。然后创建一个名为 helloworld 的子文件夹,右击projects文件夹点击 通过Code打开。在学习本教程时,您将看到.vscode在工作区的文件夹中创建了三个文件:

  • tasks.json (构建说明)
  • launch.json (调试器设置)
  • c_cpp_properties.json (编译器路径和 IntelliSense 设置)

点击文件 > 将工作区另存为 > 打开projects文件夹 > 保存,操作完成后就将projects设为了工作区,可以该工作区下创建多个工作项目。

在这里插入图片描述

关于直接创建文件夹和创建工作区的差别这里不进行叙述

添加源码

选中helloworld并在文件资源管理器标题栏中,选择新建文件按钮并将文件命名为helloworld.cpp.

在这里插入图片描述

创建完成后输入以下代码:

#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;
}

按住Ctrl+S保存后,显示如下:

在这里插入图片描述

建立helloworld.cpp

接下来,创建一个tasks.json文件来告诉VSCODE(编辑器)如何建立(编译)程序,该文件主要用来调用g++编译器去创建源码的可执行文件。操作步骤是:终端(Terminal )> 配置默认生成任务(Configure Default Build Task),在下拉列表中显示的是给C++编译器的各类预定义目标(task)。选择C/C++:g++.exe生成活动文件(C/C++:g++.exe build active file),

在这里插入图片描述

这将创建一个tasks.json文件在.vscode文件夹中并在编辑器中打开它。你的新tasks.json文件应该类似于下面的 JSON:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe 生成活动文件",
			"command": "C:\\mingw64\\mingw64\\bin\\g++.exe",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: C:\\mingw64\\mingw64\\bin\\g++.exe"
		}
	]
}

在这里插入图片描述

其中参数说明如下:

? command:设置指定程序运行(在这里就是指的g++)。

? args:数组形式。设置一些传递给命令行g++的参数,这些参数必须按一定的顺序提供给编译器。

? -g:提供给g++进行编译的生成文件(${file})

? -o:创造生成文件的可执行文件在当前路径(${fileDirname}),并且使用相同名字的.exe扩展(${fileBasenameNoExtension}.exe),这里就是helloworld.exe。

? lable:在任务中可以看到的值(可自定义命名)

? isDefault:true的设定仅仅是为了方便起见,它是指定您按Ctrl+Shift+B时运行此任务,当为false时,仍可以使用终端(Terminal)> 运行生成任务 (Run Build Task)从终端菜单运行它。

运行生成任务

  1. 返回 helloworld.cpp. 你需要运行 helloworld.cpp并且需要运行生成文件.
  2. tasks.json定义了运行生成任务的命令, 按住Ctrl+Shift+B 或者使用终端(Terminal)> 运行生成任务 (Run Build Task)。
  3. 当任务开始后,集成终端面板将会在源代码下方显示,任务完成后,终端将会显示编译器的的输出,说明编译是否成功,成功地g++编译如下:

在这里插入图片描述

使用+键创建一个新终端,这是一个以project文件夹为工作目录的新终端,进入helloworld运行dir可以看到可执行文件helloworld.exe

在这里插入图片描述

进一步输入.\helloworld.exe可以看到 .cpp文件中要输出的内容。

修改tasks.json

您可以tasks.json通过使用类似的参数"${workspaceFolder}\\*.cpp"而不是${file}. 这将构建.cpp当前文件夹中的所有文件。您还可以通过替换"${fileDirname}\\${fileBasenameNoExtension}.exe"为硬编码文件名(例如"${workspaceFolder}\\myProgram.exe")来修改输出文件名。

调试helloworld.cpp

接下来按下F5来配置VSCODE编辑器加载GDB调试器来创建launch.json文件,以此来调试源码。

? 1.从主目录下选择运行(Run)> 添加配置(Add Configuration)并进一步选择C++ (GDB/LLDB)

? 2.你将会从下拉选项中看到调试配置,选择g++.exe - 生成和调试活动文件(g++.exe build and debug active file.)

在这里插入图片描述

VSCODE创建一个launch.sjon文件,在编辑器中打开它

{
    // 使用 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": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\mingw64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}

其中参数说明如下:

? program:指定需要调试的程序,

? ${fileDirname}是表示活动(调试)文件夹

? ${fileBasenameNoExtension}.exe:是表示活动(调试)文件名

? 举例说明则是如果活动(调试)文件是helloworld.cpp,那么${fileBasenameNoExtension}.exe则表示helloworld.exe。

? stopAtEntry:false表示默认不对main()设置断点,true表示默认对main()设置断点。当为true时,运行(run) > 启动调试表现如下:

在这里插入图片描述

若为false则不会出现该情况,直接运行完毕。

? preLaunchTask:在启动前需要执行的任务(也就是tasks.json),因此这里的名字需要与tasks.json中label参数值保持一致。

C/C++配置

设置 c_cpp_properties.json 可以控制更多的C/C++ extension,这个json文件主要用来改变设置:编译器路径(path to the compiler)、包含路径(include paths)以及C标准(C++ standard;默认是C++17)等。这里有两种设置方式,将分别介绍。

第一种方式(C/C++ configuration UI

按住Ctrl+Shift+P后,在下拉选项中输入:C/C++;可以选择C/C++:编辑配置(UI)(C/C++: Edit Configurations (UI))调出Microsoft C/C++扩展进行设置。

在这里插入图片描述

当你对其中的参数设置改变时,VSCODE将会将这些改变写入c_cpp_properties.json文件,这里我们改变配置名称(Configuration name)为GCC;下拉编译路径(Compiler path )为g++编译器。IntelliSense模式(IntelliSense mode)为Windows-gcc-x64

在这里插入图片描述

全部设置完成后点击设置中c_cpp_propertiese.json文件,则会在.vscode文件夹下保存该文件。打开该文件显示如下内容:

{
    "configurations": [
        {
            "name": "GCC",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/mingw64/mingw64/bin/g++.exe",
            "intelliSenseMode": "windows-gcc-x64",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}

同时也可以添加工作空间之外的头文件到includePath路径下,如opencv等。

第二种方式(C/C++ configuration JSON

按住Ctrl+Shift+P后,在下拉选项中输入:C/C++可以选择C/C++:编辑配置(JSON)(C/C++: Edit Configurations (JSON))直接在.vscode文件夹下创建c_cpp_properties.json。

在这里插入图片描述

这种方式则需要对其中的配置参数进行更改,将namecompilerPathintelliSenseMode进行更改,以及自行决定是否添加cppStandard参数值:

{
    "configurations": [
        {
            "name": "GCC",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/mingw64/mingw64/bin/g++.exe",
            "intelliSenseMode": "windows-gcc-x64",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:54:08  更:2021-08-18 12:54:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 18:29:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码