20230512-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++17namespace 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;
}
  • 选中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"
}

全文完。

参考文献

  • 《VScode中配置C语言/C++运行环境》,火星动力猿,B站。
  • 《将powershell、cmd和vscode终端的编码永久修改成utf-8》,夕阳的云。

更新历史

2023-05-12 10:07:43,创建,东盛苑。

2023-05-12 18:00:30,发布,CSDN上传。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23392.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VsCode超实用插件推荐,让你的开发效率火力全开

辅助开发类&#xff1a; 1. Vetur VUE开发必备插件 1.语法高亮&#xff0c;包括 vue/html css/sass/scss/less/stylus js/ts 2.语义高亮&#xff0c;除了支持template模板以外&#xff0c;还支持大多数主流的前端开发脚本和插件 3.语法错误检查&#xff0c;包括 CSS/SCSS/LE…

VScode插件推荐以及settings配置

1.[Deprecated] Bracket Pair Colorizer 2&#xff1a;一个可定制的扩展&#xff0c;用于为匹配的括号着色。 2.Ant Design Vue helper&#xff1a;antDesign的扩展工具&#xff08;别的ui框架也有这样的插件&#xff0c;可以根据自己的需求下载&#xff09;。 3.Auto Close …

搭建自己的聊天室平台、公司内部聊天平台,Rocket.Chat搭建及使用

一&#xff0c;简介 rocket.chat是一个开源的社交软件&#xff0c;即可以直接在web页面使用&#xff0c;也可以下载APP(Android&#xff0c;IOS&#xff0c;Windows&#xff0c;Mac OS) 主要功能&#xff1a;群组聊天&#xff0c;直接通信&#xff0c;私聊群&#xff0c;桌面…

网络内部搭建NTP服务器

医院内部很多服务器及科室客户端电脑经常出现时间不一致的状况&#xff0c;导致收费、挂号及检查等项目出现问题。因为现在医院都部署了银医&#xff0c;通过微信、支付宝等互联网应用实现挂号、收费、报告查询等。所以可以在医院内外网互联的前置机上部署一个NTP服务&#xff…

解决登录提示Access denied,You do not have access to chat.openai.com

在登录使用相关AI对话服务时&#xff0c;登录提示&#xff1a; Access denied You do not have access to chat.openai.com. The site owner may have set restrictions that prevent you from accessing the site. 原因是IP被阻挡了&#xff0c;参考解决&#xff1a; 解决访问…

报错https://chat.openai.com/ api/auth/ session 429怎么办

报错https://chat.openai.com/ api/auth/ session 429怎么办 记录一下今天遇到的bug 场景是这样的&#xff1a;我正常进入chatgpt的提问页面&#xff0c;然后一直转圈&#xff0c;重新登陆&#xff0c;清楚浏览器缓存&#xff0c;都不行。 文章目录 报错https://chat.openai.c…

用了cloudflare后,网站提示Sorry, you have been blocked怎么解决?

其实cloudflare还是非常智能的&#xff0c;但有时候为了安全起见&#xff0c;我们在网站后台修改参数的时候会被CF拦截&#xff0c;我就遇到了好几次提示Sorry, you have been blocked的情况。 遇到这种情况后&#xff0c;我首先找了官方的说明文档&#xff0c;但操作了半天好…

最新版腾讯防水墙(二代)识别

2022最新版腾讯防水墙&#xff08;二代&#xff09;识别 戳这里→康康你手机号在过多少网站注册过&#xff01;&#xff01;&#xff01; 友情推荐&#xff1a;新一代安全短信 * 验证码地址&#xff1a;https://007.qq.com/online.html * 使用OpenCv模板匹配 * 成功率90%左右…

使用大型语言模(LLM)构建系统(七):评估1

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。之前我们已经学习了下面这些知识&#xff1a; 使用大型语言模(LLM)构建系统(一)&#xff1a;分类使用大型语言模(LLM)构建系统(二):内容审核、…

chatgpt赋能Python-python_def函数报错

如何关闭Python Console 在Python编程中&#xff0c;Python Console是一个常用的工具&#xff0c;它可以用来测试和调试代码、查看变量和函数等等。但是&#xff0c;在一些情况下&#xff0c;你可能需要关闭Python Console以便进行其他操作。那么&#xff0c;如何关闭Python C…

chatgpt赋能Python-python_nonetype报错

Python NoneType报错&#xff1a;原因、解决方法和预防措施 Python 是一种面向对象的高级编程语言&#xff0c;用于快速编写脚本和应用程序。但是&#xff0c;当我们在编写 Python 代码时&#xff0c;可能会遇到 NoneType 报错&#xff1b;这是一种类型错误&#xff0c;它发生…

main函数的行参(argc、argv)实例解释

目录 前言 一、问题描述 二、行参含义 三、题目应用 1、代码&#xff08;重点在中文批注处&#xff09; 2、执行测试 前言 在做CS50 Week3的problem set--plurality时&#xff0c;遇到main函数里带了两个行参&#xff08;int argc&#xff0c; string argv[]&#xff09;…

LLM探索:GPT类模型的几个常用参数 Top-k, Top-p, Temperature

Top-k抽样模型从最可能的"k"个选项中随机选择一个如果k10&#xff0c;模型将从最可能的10个单词中选择一个Top-p抽样模型从累计概率大于或等于“p”的最小集合中随机选择一个如果p0.9&#xff0c;选择的单词集将是概率累计到0.9的那部分Temperature控制生成文本随机性…

GPT-4震撼发布:如何加入候补名单

ChatGPT 点燃了科技行业的明灯&#xff0c;GPT-4 能燎原吗&#xff1f; 谁能革得了 ChatGPT 的命&#xff1f;现在看来还是 OpenAI 自己。 在 ChatGPT 引爆科技领域之后&#xff0c;人们一直在讨论 AI「下一步」的发展会是什么&#xff0c;很多学者都提到了多模态&#xff0c;我…

chatgpt赋能python:如何用Python打造一个简单的抽奖程序

如何用Python打造一个简单的抽奖程序 随着互联网的不断发展&#xff0c;抽奖活动已经成为了各种营销活动的必备环节&#xff0c;因此如何快速便捷地实现一个抽奖程序也变得尤为重要。本文将介绍如何使用Python打造一个简单的抽奖程序。 一、抽奖程序的工作原理 抽奖程序的核…

一文读懂 ChatGPT 插件功能:语言模型获取新信息的“眼睛和耳朵”

来源&#xff1a;OpenAI 编译&#xff1a;巴比特 图片来源&#xff1a;由无界 AI工具生成 OpenAI&#xff1a;我们已经在 ChatGPT 中实现了对插件的初步支持。插件是专门为语言模型设计的工具&#xff0c;以安全为核心原则&#xff0c;并帮助 ChatGPT 访问最新的信息&#xff0…

OpenAI 再丢“王炸”:ChatGPT “封印”解除,能联网、搜索了!

整理 | 屠敏 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 「乱花渐欲迷人眼」&#xff0c;新的一天里&#xff0c;OpenAI 再次丢出“王炸”&#xff1a;ChatGPT 推出插件功能&#xff0c;既能联网&#xff0c;也能开启搜索&#xff0c;还能执行代码和运…

三菱加工中心CNC编程G代码讲解

注意&#xff1a;在G之后没有接续数值指令中&#xff0c;在运转时将变成G00的动作。&#xff08;注1&#xff09;印有“*”记号表示初期状态应选择的指令码或被选择的指令码。印有“※”记号表示初期状态依参数所选定指令码或被选择的指令码。&#xff08;注2&#xff09;同一单…

如何用ChatGPT做咨询师,附Prompt

对基本问题研究得不深不透、得不到可靠的分析框架支持的情况下&#xff0c;仓促采取就事论事的应对措施 &#xff0c;由于未能触及事情的根本&#xff0c;往往非但不能获得预期的效果&#xff0c;相反可能引发新的矛盾。 ——吴敬琏&#xff08;著名经济学家&#xff0c;国务院…

chatGPT:5分钟制作PPT

近日&#xff0c;公司推广办公自动化&#xff0c;让我当回培训师&#xff0c;培训后勤部门员工如何使用RPA。做个培训PPT的重任自然得交给chatGPT了&#xff0c;以下是制作步骤&#xff1a; 步骤一&#xff1a;拟写提示词交chatGPT “你现在是一位编写PPT的高手。我会提出PPT的…