编译 C++ 报错“找不到 g++ 编译器”的终极解决方案(含 Windows/Linux/macOS)
前言
在使用终端编译 C++ 程序时,报错:

或类似提示,意味着你的系统尚未正确安装或配置 g++ 编译器。本篇将从零手把手教你在 Windows / Linux / macOS 下安装并配置 g++,适用于新手或 C++ 入门阶段的你。
什么是 g++?
g++ 是 GNU 编译器套件(GCC)中的 C++ 编译器,能够将 .cpp 文件编译为可执行程序。它是开发 C++ 应用最常用的工具之一。
方法一:使用 MSYS2 安装 g++
MSYS2 提供了 GCC 的 MinGW 编译环境,适用于 Windows 原生开发。
步骤:
-
下载并安装 MSYS2
访问官网:MSYS2
下载并安装后,打开MSYS2 MinGW 64-bit终端。 -
更新系统包管理器(第一次安装的时候)
pacman -Syu
安装 g++
pacman -S mingw-w64-x86_64-gcc
配置环境变量(可选)
将如下路径添加至系统 PATH 中(建议):
C:\msys64\mingw64\bin
验证
g++ --version
方法二:使用 MinGW 安装 C++ 开发环境(Windows)
如果你不想安装 MSYS2 或 VS 这么重的工具链,也可以选择 MinGW(Minimalist GNU for Windows),这是 Windows 上一个非常轻量的 C/C++ 编译器方案。
它适合初学者和中小型项目,安装简单,占用空间小,支持标准的 g++ 命令行编译。
下载 MinGW 安装器
进入官方或推荐页面下载:
-
官网:mingw-w64

-
推荐下载(sourceforge):
https://sourceforge.net/projects/mingw-w64/

下载文件名通常为:
mingw-w64-install.exe
运行安装器
-
架构选择:
x86_64 -
线程模型:
posix -
异常处理:
seh(更适合 64 位) -
安装目录:比如
C:\mingw-w64
点击 Next,完成安装。
配置系统环境变量
这步很关键,不然命令行找不到 g++!
操作步骤:
-
右键“此电脑” → 属性 → 高级系统设置 → 环境变量
-
找到
Path→ 编辑 -
添加 MinGW 的 bin 目录路径,例如:
C:\mingw-w64\bin
测试是否安装成功
打开 命令提示符(cmd) 或 PowerShell,输入:
g++ --version
如果显示如下版本信息,说明安装成功:
g++ (x86_64-posix-seh, built by ... ) 13.x.x
如果还是不可以的话,可以点击打开下载的MinGW Installer
观察是否有环境(版本信息)

如果没有的话,就点击package列的选择框进行勾选,然后点击update package进行更新下载

等到完成后查看版本号是否为空,如果为空,可能没有吧下载成功,需要重新下载。

方法三:安装 TDM-GCC(适合懒人)
官网下载地址:https://jmeubank.github.io/tdm-gcc/
安装后勾选添加到系统环境变量,即可使用 g++。
Linux 解决方案(Ubuntu/Debian)
安装 g++:
sudo apt update sudo apt install g++
验证
g++ --version
如果看到版本号输出,说明安装成功!
macOS 解决方案
macOS 上安装 g++ 主要依赖 Apple 提供的 Xcode 工具链。
步骤一:安装命令行工具
xcode-select --install
这会安装 clang++ 编译器,它与 g++ 高度兼容。你也可以通过 Homebrew 安装 GCC。
步骤二(可选):使用 Homebrew 安装 g++
-
安装 Homebrew(如果你还没装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
安装 g++(gcc):
brew install gcc -
查看版本:
g++-13 --version通常版本为
g++-13、g++-12等,可通过软链接或别名设置为默认:alias g++=g++-13
编译测试
编写一个最简单的 C++ 程序:
// hello.cpp
#include <iostream>
int main() {
std::cout << "Hello, g++!" << std::endl;
return 0;
}
g++ hello.cpp -o hello
./hello # Windows 下为 hello.exe
如果能成功打印输出:
Hello, g++!
说明编译器工作正常!
常见问题排查
| 报错信息 | 原因 | 解决方案 |
|---|---|---|
g++: command not found | 未安装 g++ | 安装 g++ |
g++ is not recognized as an internal or external command | 环境变量未配置 | 添加 g++ 所在路径到 PATH |
permission denied | 权限不足 | 使用 sudo 或检查当前目录权限 |
总结
| 平台 | 推荐方式 |
|---|---|
| Windows | MSYS2 + MinGW |
| Linux | apt/yum 安装 |
| macOS | Xcode CLI 或 Homebrew 安装 |
无论你在哪个平台,只要按本文操作,5 分钟就能搞定 g++,从此告别“找不到编译器”的困扰!如果你觉得这篇文章对你有帮助,欢迎点赞 + 收藏 + 转发!
如遇其他 C++ 编译相关问题,也欢迎留言交流~
相关文章:
编译 C++ 报错“找不到 g++ 编译器”的终极解决方案(含 Windows/Linux/macOS)
前言 在使用终端编译 C 程序时,报错: 或类似提示,意味着你的系统尚未正确安装或配置 g 编译器。本篇将从零手把手教你在 Windows / Linux / macOS 下安装并配置 g,适用于新手或 C 入门阶段的你。 什么是 g? g 是 GN…...
联易融出席深圳链主企业供应链金融座谈会,加速对接票交所系统
近日,深圳市委金融办组织召开全市链主企业供应链金融高质量发展座谈会。联易融作为供应链金融企业代表,与虾皮信息科技、电子元器件和集成电路国际交易中心等代表性机构以及行业协会、金融机构参加了会议。 发展供应链金融是破解中小微企业融资难、融资…...
html单页业务介绍源码
源码介绍 html单页业务介绍源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行 效果预览 源码免费获取 html单页业务介绍源码...
单体OJ项目
单体项目版本、微服务版还需我再钻研钻研。 项目介绍 在系统前台,管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。 在系统后端,能够根据管理员设定的题目测试用例在代码沙箱 中对代码进行编译、运行、判断输出是否正确。 其…...
豆包桌面版 1.47.4 可做浏览器,免安装绿色版
自己动手升级更新办法: 下载新版本后安装,把 C:\Users\用户名\AppData\Local\Doubao\Application 文件夹的文件,拷贝替换 DoubaoPortable\App\Doubao 文件夹的文件,就升级成功了。 再把安装的豆包彻底卸载就可以。 桌面版比网页版…...
数据分析案例:医疗健康数据分析
目录 数据分析案例:医疗健康数据分析1. 项目背景2. 数据加载与预处理2.1 加载数据2.2 数据清洗3. 探索性数据分析(EDA)3.1 再入院率概览3.2 按年龄分组的再入院率3.3 住院时长与再入院4. 特征工程与可视化5. 模型构建与评估5.1 数据划分5.2 训练逻辑回归5.3 模型评估6. 业务…...
【MySQL】索引失效问题详解
目录 1. 最左前缀原则 2. 条件左边有函数或运算 3. 隐式类型转换 4. LIKE 模糊查询以 % 开头 5、MySQL 优化器选择全表扫描 ⭐对 in 关键字特别说明⭐ (1)列表太大时,走全表扫描了 (2)隐式类型转换 ÿ…...
Qt实现语言切换的完整方案
在Qt中实现语言动态切换需要以下几个关键步骤,我将提供一个完整的实现方案: 一、准备工作 在代码中使用tr()标记所有需要翻译的字符串 cpp button->setText(tr("Submit")); 创建翻译文件 在.pro文件中添加: qmake TRANSLATION…...
MongoDB(docker版)备份还原
docker启动MongoDB docker run -d -p 27017:27017 --name my-mongo -v /mongodb/db:/data/db mongo备份MongoDB 使用mongodump备份数据库时,默认会将备份数据保存在当前工作目录下的dump文件夹中。 docker容器中默认备份在当前工作目录,所以此处指定当…...
优选算法第十讲:字符串
优选算法第十讲:字符串 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 2.最长回文子串 3.二进制求和 4.字符串相乘...
【扣子Coze 智能体案例四】五行八卦占卜智能体
目录 一、意图识别 二、时间格式转换 三、八字转换 四、八字提取 五、八字提取2 六、数据汇总 七、统计五行占比 八、雷达图生成 九、表格生成 十、AI占卜 十一、结束节点 一、意图识别 用户输入的信息包含各种时间格式的年月日时 用户输入的信息包含天干地支八字…...
2026《数据结构》考研复习笔记四(绪论)
绪论 前言时间复杂度分析 前言 由于先前笔者花费约一周时间将王道《数据结构》知识点大致过了一遍,圈画下来疑难知识点,有了大致的知识框架,现在的任务就是将知识点逐个理解透彻,并将leetcode刷题与课后刷题相结合。因此此后的过…...
域名 → IP 的解析全过程
Question 使用 iOS 的网络库 (比如 AFNetwoking, URLSession, Alamofire) 进行请求时, 域名具体是怎样被解析为 IP 地址的 ? Answer 一次常见的 URLSession / AFNetworking / Alamofire 请求,域名 → IP 的解析全过程 拆成自顶向下 6 个环节, 如下 1 ► 应用层&…...
C++学习:六个月从基础到就业——STL算法(三)—— 数值算法(上)
C学习:六个月从基础到就业——STL算法(三)—— 数值算法(上) 本文是我C学习之旅系列的第二十七篇技术文章,也是第二阶段"C进阶特性"的第五篇,主要介绍C STL算法库中的数值算法(上部分)。查看完整系列目录了解…...
路由与路由器
路由的概念 路由是指在网络通讯中,从源设备到目标设备路径的选择过程。路由器是实现这一过程的关键设备,它通过转发数据包来实现网络的互联。路由工作在OSI参考模型的第三层,‘网络层’。 路由器的基本原理 路由器通过维护一张路由表来决定…...
5.学习笔记-SpringMVC(P61-P70)
SpringMVC-SSM整合-接口测试 (1)业务层接口使用junit接口做测试 (2)表现层用postman做接口测试 (3)事务处理— 1)在SpringConfig.java,开启注解,是事务驱动 2)配置事务管理器(因为事务管理器是要配置数据源对象&…...
【专题刷题】二分查找(一):深度解刨二分思想和二分模板
📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;ÿ…...
硬核解析!电动汽车能耗预测与续驶里程的关键技术研究
引言 随着电动汽车的普及,续航里程和能耗表现成为用户关注的核心痛点。然而,表显续航与实际续航的差异、低温环境下的电量衰减等问题始终困扰着消费者。本文基于《电动汽车能耗预测与续驶里程研究》的实验成果,深入剖析电动汽车能耗预测的核心模型、多环境测试方法及续航里…...
【OceanBase相关】01-OceanBase数据库部署实践
文章目录 一、前言1、介绍说明2、部署方案二、部署说明1、环境准备2、软件安装2.1、安装OAT2.2、安装OCP3、软件部署三、集群管理1、MySQL租户管理四、Q&A1、OBServer 服务器重启后 observer 进程未能自动启动1.1、问题说明1.2、解决措施2、ERROR 1235 (0A000) at line 1: …...
【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)
文章目录 一、题目题目描述输入输出样例1样例2 一、代码与思路🧠C语言思路✅C代码 一、题目 参考:https://sars2025.blog.csdn.net/article/details/139492358 题目描述 ◎ 给定一个字符串,只包含大写字母,求在包含同一字母的子串…...
C# 综合示例 库存管理系统4 classMod类
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 在《库存管理系统》中使用classMod类来保存全局变量。 变量定义和含义,请详见下面的源代码: public class classMod { //数据库路径...
ZooKeeper配置优化秘籍:核心参数说明与性能优化
#作者:张桐瑞 文章目录 tickTime:Client-Server通信心跳时间initLimit:Leader-Follower初始通信时限syncLimit:Leader-Follower同步通信时限dataDir:数据文件目录clientPort:客户端连接端口服务器名称与地…...
详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别
详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别 下面我们详细拆解 Qt 中用于线程同步的两个核心类:QMutex 和 QMutexLocker。 🧱 一、什么是 QMutex? QMutex 是 Qt 中的互斥锁(mutex)类,用于防止多个…...
PCB 过孔铜厚的深入指南
***前言:在上一期的文章中介绍了PCB制造的工艺流程,但仍然想在过孔的铜厚和PCB的过孔厚径比两个方面再深入介绍。 PCB铜厚的定义 电路中铜的厚度以盎司(oz)**表示。那么,为什么用重量单位来表示厚度呢? 盎司(oz)的定义 将1盎司(28.35 克)的铜…...
【ES实战】Elasticsearch中模糊匹配类的查询
Elasticsearch中模糊匹配类的查询 文章目录 Elasticsearch中模糊匹配类的查询通配符查询前缀匹配查询正则匹配查询标准的正则操作特殊运算符操作 模糊化查询Fuzziness text类型同时配置keyword类型 Elasticsearch中模糊类查询主要有以下 Wildcard Query:通配符查询P…...
Spring Security认证流程
认证是Spring Security的核心功能之一,Spring Security所提供的认证可以更好地保护系统的隐私数据与资源,只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置,开发者也可以根据自己实际的环境进行自定义身…...
TXPOLARITY/RXPOLARITY设置
TXPOLARITY/RXPOLARITY:该端口用来反向输出数据的极性。 0:表示不反向。TXP是正,TXN是负; 1:标识反向。TXP是负,TXN是正; 如下图所示:...
2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)
今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题,可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…...
优考试V4.20机构版【可注册】
优考试V4.20机构版,可通过注册机完美激活。 优考试机构版是一个功能强大的在线考试系统,适用于各种 考试场景,包括在线考试、培训、学习等多种用途。以下是优考试机构版的主要功能和特点: 多层级管理:优考试机…...
携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放
在4月23日“世界读书日”之际,阿里妈妈联合国家图书馆文创正式发布了三条AI创意视频。 该系列视频以“千年文脉典籍奇谈”为主题,借助阿里妈妈的AIGC能力,以AI链接古今,打开阅读典籍新方式,引起不少人强烈兴趣。据悉&…...
