VSCode-配置C++17-win11-22h2

20230512-VSCode-配置C++17-win11-22h2
一、软件环境

    标签:C++ VSCode w64devkit gcc12
    分栏:C++
    操作系统:Windows11 x64 22h2
    编译器:vscode-1.78.2 w64devkit-1.18.0

二、操作步骤
1. 下载安装VScode
官网

打开官网【https://code.visualstudio.com/#alt-downloads】,选择【System Installer】【x64】,按住ctrl键点链接(这样从新窗口打开)。建议用下载工具下载。

在这里插入图片描述

保留到本地,当前最新版本为【1.78.2】。
安装VSCode

过程文字描述如下:

我同意;

选安装目录【C:\Program Files\Microsoft VS Code】;

开始菜单文件夹【Visual Studio Code】;

选择附加任务,勾选【全部】,如图:

在这里插入图片描述

点击安装,完成。

注:网盘备份位置【3-软件相关-software>1-IDE-编译器>1-vscode】。
2. 下载配置w64devkit-1.18.0

没有选择MinGW是因为最新版本支持到gcc-8.1,无法编译C++17下的filesystem库。
官网

打开官网【https://github.com/skeeto/w64devkit/releases/tag/v1.18.0】,选择【w64devkit-1.18.0.zip】;

如图:

在这里插入图片描述

保存到本地。

注:网盘备份位置【1-IDE-编译器>2-mingw】。
配置gcc环境变量

将压缩文件解压到【D:\1-libs\w64devkit-1.18.0】,该目录可自定义,路径【不要包含中文】;

进入bin目录【D:\1-libs\w64devkit-1.18.0\w64devkit\bin】,复制当前路径。

按win键搜索【env】,选择【编辑系统环境变量】,打开系统属性对话框,点击环境变量,如图;

在这里插入图片描述

选择用户变量,【Path】【编辑】,新建【D:\1-libs\w64devkit-1.18.0\w64devkit\bin】,如图;

在这里插入图片描述

点击三次确定,完成。

打开cmd,输入【gcc -v】验证。配置正确则显示【gcc version 12.2.0】,如图。

在这里插入图片描述
3. 配置VScode插件

    打开VSCode,搜索插件【chinese】【C/C++】,安装后重启。
    点击C/C++插件右正解的设置按钮【安装另一个版本】,切换C/C++插件至1.14.5版本。如图:
    在这里插入图片描述

个人习惯不用最新版本,这里选1.14.5,也可以跳过这一步。

在这里插入图片描述
4. 测试代码

    新建文件夹,改为英文名进入,用VSCode打开该文件夹
    新建文本文件,命名为cpp17-filesystem-test.cpp(文本编码:Unix(LF),UTF-8),可用notepad++查看,如图

在这里插入图片描述

    编写代码如下:

// cpp17-filesystem-test.cpp
// create:  2023-05-12 10:31:32
// w64devkit-1.18.0,开源库,gcc-12.2

#include <iostream>

#include <filesystem>   //C++17

namespace fs = std::filesystem;

int main(int argc, char** argv)
{
    fs::path example_a = "H:\\2-git\\1-csdn-docs\\v0\\csdn_codes\\2023\\5\\12\\512a\\0-src";
    // fs::path example_a = "../";

    if (!fs::exists(example_a))
    {
        return -1;
    }

    std::cout << "string: " << example_a.string().c_str() << '\n';
    std::cout << "string: " << example_a.generic_string().c_str() << '\n';  //转斜杠

    std::cout << "Hello World!测试中文乱码!\n";

    return 0;
}

C++
运行

  

    选中cpp文件后,点击VSCode菜单,运行,启动调试(或按F5),在下方【终端】可看到运行结果,如图。

在这里插入图片描述
5. 调整优化

程序正常运行后会在当前目录生成【.vscode】目录,该目录下会生成task.json文件,该文件可进行一些优化设置。

本文配置参考如下:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "D:\\1-libs\\w64devkit-1.18.0\\w64devkit\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                //"${fileDirname}\\${fileBasenameNoExtension}.exe"
                "${fileDirname}\\Debug\\a.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

 

5.1 将程序运行在外部控制台

    设置终端编码为utf-8

方法是修改注册表【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor】添加字符串【autorun】,值为【chcp 65001】,注意中间有空格。如图:

在这里插入图片描述

    添加launch.json

点击VSCode左边栏的【运行和调试】,点击【创建launch.json】,如图:

在这里插入图片描述

修改内容如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\Debug\\a.exe",//这个地方和task.json保持一致
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,//这个地方默认为false,改为true弹出cmd窗口
            "MIMode": "gdb",
            //"miDebuggerPath": "/path/to/gdb",    //注释掉这一行
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"//这是默认文件后手动添加的,和task.json保持一致
        }
    ]    
}

 

注意注释位置描述的两个json文件要保持一致的地方。

按F5运行,正常情况会弹出终端,中文显示乱码。如图:

在这里插入图片描述

因为win11的终端utf-8有bug,所以不推荐用此方法。
5.2 中文乱码问题

win11暂时只能通过直接控制台运行a.exe解决乱码问题,或者只用VSCode的终端进行调试。如图:

在这里插入图片描述
5.3 修改exe输出目录

修改task.json如下,就能实现在Debug目录生成exe:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "D:\\1-libs\\w64devkit-1.18.0\\w64devkit\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                //修改这个地方,Debug是自定义目录:"${fileDirname}\\${fileBasenameNoExtension}.exe"
                "${fileDirname}\\Debug\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值