<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>VSCode on Twilightly&#39;s blog</title>
        <link>https://blog.twilightly.top/tags/vscode/</link>
        <description>Recent content in VSCode on Twilightly&#39;s blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Twilightly</copyright>
        <lastBuildDate>Tue, 02 Sep 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.twilightly.top/tags/vscode/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>MinGW安装教程</title>
        <link>https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</link>
        <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</guid>
        <description>&lt;img src="https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/header-dark.svg" alt="Featured image of post MinGW安装教程" /&gt;&lt;h2 id=&#34;什么是mingw&#34;&gt;什么是MinGW
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;MinGW（Minimalist GNU for Windows）是一个把 GNU 工具链（gcc/g++、binutils 等）移植到 Windows 的项目，能生成原生 Win32 可执行文件。&lt;/li&gt;
&lt;li&gt;它不做 POSIX 仿真（不是 Cygwin）；生成的程序链接到 Microsoft 的 C 运行时（msvcrt）。&lt;/li&gt;
&lt;li&gt;原始 MinGW 项目主要面向旧的 32 位环境，更新较慢。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;什么是-mingww64&#34;&gt;什么是 MinGW‑w64
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;MinGW‑w64 最初是 MinGW 的一个分支/重写，目标是支持 64 位（x86_64）并同时保持对 32 位（i686）的支持。&lt;/li&gt;
&lt;li&gt;提供更完整的 Windows API 头文件、Unicode 支持、改进的异常/线程处理（如 SEH/DWARF 支持），并支持更现代的 GCC 版本。&lt;/li&gt;
&lt;li&gt;MinGW 是把 GNU 工具链带到 Windows 的早期项目，偏向旧的 32 位；MinGW‑w64 是更现代、更全面并支持 64 位的分支/重写，通常是现在的首选。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安装mingw-w64&#34;&gt;安装MinGW-w64
&lt;/h2&gt;&lt;h3 id=&#34;下载&#34;&gt;下载
&lt;/h3&gt;&lt;p&gt;直接前往github下载MinGW-w64&lt;/p&gt;
&lt;p&gt;链接：&lt;a class=&#34;link&#34; href=&#34;https://github.com/niXman/mingw-builds-binaries/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;niXman/mingw-builds-binaries-release&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756787865312.png&#34;
	width=&#34;731&#34;
	height=&#34;694&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756787865312_hu_cf98f776b883874f.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756787865312_hu_959b0e94cca81f5c.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;niXman/mingw-builds-binaries-release&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;105&#34;
		data-flex-basis=&#34;252px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;各个版本的区别&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;i686&lt;/strong&gt; 和 &lt;strong&gt;x86_64&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;i686&lt;/strong&gt; 是 32 位的 x86 架构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;x86_64&lt;/strong&gt; 是 64 位的 x86 架构。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;posix&lt;/strong&gt;、&lt;strong&gt;win32、MCF&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;POSIX（Portable Operating System Interface）是一组标准接口/行为（由 IEEE 定义），常见于类 Unix 系统（Linux、macOS、BSD 等）。它规定了系统调用、命令行工具、shell 行为、文件权限、进程/信号语义等。&lt;/li&gt;
&lt;li&gt;Win32 是 Windows 操作系统的原生 API 集合（也指 Windows 平台整体语义）。它基于 Windows 特有的对象（HANDLE、COM、Win32 线程/进程模型等），与 POSIX 接口在很多地方不同。&lt;/li&gt;
&lt;li&gt;MCF Gthread是Windows 7及更高版本的线程支持库，它实现了gthread接口集，GCC在内部使用它来提供本地静态对象的初始化同步，libstdc++在内部使用它来提供C++11线程工具。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;seh&lt;/strong&gt; 和 &lt;strong&gt;dwarf&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;seh&lt;/strong&gt; 的意思是结构化异常处理（Structured Exception Handling），是一种在 Windows 上处理异常的机制。seh 可以处理硬件异常（如除零错误）和软件异常（如访问无效内存）。seh 也可以与 C++ 异常兼容。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dwarf&lt;/strong&gt; 是一种在 Linux 上处理异常的机制，它使用了一种叫做 DWARF 的调试信息格式来描述程序的结构和行为。dwarf 可以处理 C++ 异常，但不能处理硬件异常。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;msvcrt 和 ucrt&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;msvcrt 的意思是 Microsoft Visual C++ 运行时（Microsoft Visual C++ Runtime），是一个提供 C 标准库函数的动态链接库。msvcrt 是 Windows 系统自带的，但由于向后兼容性的问题，它没有完全遵循 C99 标准，并且缺少一些功能。&lt;/li&gt;
&lt;li&gt;ucrt 的意思是通用 C 运行时（Universal C Runtime），是一个提供 C 标准库函数的动态链接库。ucrt 是 Windows 10 及更新版本的系统自带的，它遵循了 C99 和 C11 标准，并且提供了一些额外的功能。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于一般在Win11系统上 学习使用C/C++ 可以选择 x86_64-win32-seh-ucrt&lt;/p&gt;
&lt;h3 id=&#34;安装&#34;&gt;安装
&lt;/h3&gt;&lt;p&gt;直接将压缩文件解压至任意位置即可&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788431258.png&#34;
	width=&#34;534&#34;
	height=&#34;468&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788431258_hu_6718bab78f4562e6.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788431258_hu_d0af7ad3ef04ff4f.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;压缩包内\mingw64文件夹&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;114&#34;
		data-flex-basis=&#34;273px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;解压后将\mingw64\bin添加至系统环境变量即可&lt;/p&gt;
&lt;h3 id=&#34;检查&#34;&gt;检查
&lt;/h3&gt;&lt;p&gt;输入 &lt;code&gt;gcc -v&lt;/code&gt; 或者 &lt;code&gt;gcc -version&lt;/code&gt; 确认安装完成&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788780373.png&#34;
	width=&#34;1466&#34;
	height=&#34;550&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788780373_hu_31aea50dc67e56f5.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788780373_hu_bd97cda825fb4ab8.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;运行gcc -v&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;266&#34;
		data-flex-basis=&#34;639px&#34;
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;在vscode中使用&#34;&gt;在VScode中使用
&lt;/h3&gt;&lt;p&gt;搜索安装 C/C++ Extension Pack 插件&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788899316.png&#34;
	width=&#34;2114&#34;
	height=&#34;859&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788899316_hu_f18343ef116cd02c.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756788899316_hu_633c395c02fbbd25.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;C/C&amp;#43;&amp;#43; Extension Pack&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;246&#34;
		data-flex-basis=&#34;590px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;打开任意文件夹，编写一个简单的c++程序&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789005133.png&#34;
	width=&#34;1277&#34;
	height=&#34;420&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789005133_hu_71ebdaf9ae7eddf9.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789005133_hu_77cc3f14611d79b5.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;hello world&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;304&#34;
		data-flex-basis=&#34;729px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;如遇到头文件报错： 检测到 #include 错误。请更新 includePath。说明 VSCode 未识别到本地编译器。需要确保环境变量中正确设置 \mingw64\bin 路径，并重新启动 VSCode 更新环境变量。&lt;/p&gt;
&lt;p&gt;通常情况下，在新版 C/C++ 插件中，将会自动完成相关配置，无需手动设置 lunch.json 与 task.json&lt;/p&gt;
&lt;p&gt;单击 F5 选择 c++ (GDB/LLDB) 作为调试器&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789580603.png&#34;
	width=&#34;1081&#34;
	height=&#34;109&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789580603_hu_573aabeb7ca065d4.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789580603_hu_c283f963c7a4ed83.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;选择调试器&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;991&#34;
		data-flex-basis=&#34;2380px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;选择 g++.exe 作为 c++ 编译器&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789604231.png&#34;
	width=&#34;1078&#34;
	height=&#34;263&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789604231_hu_fdcc178e70db4d3.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789604231_hu_284a101d3c0ef3b1.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;选择编译器&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;409&#34;
		data-flex-basis=&#34;983px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;调试控制台将显示相关调试信息&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789678764.png&#34;
	width=&#34;1312&#34;
	height=&#34;592&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789678764_hu_bf402262f4ad004e.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789678764_hu_ac40f92291b97b8c.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;调试控制台&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;221&#34;
		data-flex-basis=&#34;531px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;终端中将显示程序标准输出&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789707958.png&#34;
	width=&#34;656&#34;
	height=&#34;300&#34;
	srcset=&#34;https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789707958_hu_ea32c60f60169a6a.png 480w, https://blog.twilightly.top/p/mingw%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/image/index/1756789707958_hu_7568adebfd62db02.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;终端&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;218&#34;
		data-flex-basis=&#34;524px&#34;
	
&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
