编译 C++ 报错“找不到 g++ 编译器”的终极解决方案(含 Windows/Linux/macOS)

news2025/4/25 10:19:46

前言

在使用终端编译 C++ 程序时,报错:

或类似提示,意味着你的系统尚未正确安装或配置 g++ 编译器。本篇将从零手把手教你在 Windows / Linux / macOS 下安装并配置 g++,适用于新手或 C++ 入门阶段的你。

什么是 g++?

g++ 是 GNU 编译器套件(GCC)中的 C++ 编译器,能够将 .cpp 文件编译为可执行程序。它是开发 C++ 应用最常用的工具之一。

方法一:使用 MSYS2 安装 g++

MSYS2 提供了 GCC 的 MinGW 编译环境,适用于 Windows 原生开发。

步骤:
  1. 下载并安装 MSYS2
    访问官网:MSYS2
    下载并安装后,打开 MSYS2 MinGW 64-bit 终端。

  2. 更新系统包管理器(第一次安装的时候)

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++

操作步骤:

  1. 右键“此电脑” → 属性 → 高级系统设置 → 环境变量

  2. 找到 Path → 编辑

  3. 添加 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++

  1. 安装 Homebrew(如果你还没装):

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  2. 安装 g++(gcc):

    brew install gcc

  3. 查看版本:

    g++-13 --version

    通常版本为 g++-13g++-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 或检查当前目录权限

总结

平台推荐方式
WindowsMSYS2 + MinGW
Linuxapt/yum 安装
macOSXcode CLI 或 Homebrew 安装

无论你在哪个平台,只要按本文操作,5 分钟就能搞定 g++,从此告别“找不到编译器”的困扰!如果你觉得这篇文章对你有帮助,欢迎点赞 + 收藏 + 转发!
如遇其他 C++ 编译相关问题,也欢迎留言交流~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html单页业务介绍源码

源码介绍 html单页业务介绍源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行 效果预览 源码免费获取 html单页业务介绍源码

单体OJ项目

单体项目版本、微服务版还需我再钻研钻研。 项目介绍 在系统前台&#xff0c;管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。 在系统后端&#xff0c;能够根据管理员设定的题目测试用例在代码沙箱 中对代码进行编译、运行、判断输出是否正确。 其…

豆包桌面版 1.47.4 可做浏览器,免安装绿色版

自己动手升级更新办法&#xff1a; 下载新版本后安装&#xff0c;把 C:\Users\用户名\AppData\Local\Doubao\Application 文件夹的文件&#xff0c;拷贝替换 DoubaoPortable\App\Doubao 文件夹的文件&#xff0c;就升级成功了。 再把安装的豆包彻底卸载就可以。 桌面版比网页版…

【MySQL】索引失效问题详解

目录 1. 最左前缀原则 2. 条件左边有函数或运算 3. 隐式类型转换 4. LIKE 模糊查询以 % 开头 5、MySQL 优化器选择全表扫描 ⭐对 in 关键字特别说明⭐ &#xff08;1&#xff09;列表太大时&#xff0c;走全表扫描了 &#xff08;2&#xff09;隐式类型转换 &#xff…

优选算法第十讲:字符串

优选算法第十讲&#xff1a;字符串 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 2.最长回文子串 3.二进制求和 4.字符串相乘

【扣子Coze 智能体案例四】五行八卦占卜智能体

目录 一、意图识别 二、时间格式转换 三、八字转换 四、八字提取 五、八字提取2 六、数据汇总 七、统计五行占比 八、雷达图生成 九、表格生成 十、AI占卜 十一、结束节点 一、意图识别 用户输入的信息包含各种时间格式的年月日时 用户输入的信息包含天干地支八字…

5.学习笔记-SpringMVC(P61-P70)

SpringMVC-SSM整合-接口测试 (1)业务层接口使用junit接口做测试 (2)表现层用postman做接口测试 (3)事务处理— 1&#xff09;在SpringConfig.java&#xff0c;开启注解&#xff0c;是事务驱动 2&#xff09;配置事务管理器&#xff08;因为事务管理器是要配置数据源对象&…

【专题刷题】二分查找(一):深度解刨二分思想和二分模板

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…

硬核解析!电动汽车能耗预测与续驶里程的关键技术研究

引言 随着电动汽车的普及,续航里程和能耗表现成为用户关注的核心痛点。然而,表显续航与实际续航的差异、低温环境下的电量衰减等问题始终困扰着消费者。本文基于《电动汽车能耗预测与续驶里程研究》的实验成果,深入剖析电动汽车能耗预测的核心模型、多环境测试方法及续航里…

【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: …

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别 下面我们详细拆解 Qt 中用于线程同步的两个核心类&#xff1a;QMutex 和 QMutexLocker。 &#x1f9f1; 一、什么是 QMutex&#xff1f; QMutex 是 Qt 中的互斥锁&#xff08;mutex&#xff09;类&#xff0c;用于防止多个…

PCB 过孔铜厚的深入指南

***前言&#xff1a;在上一期的文章中介绍了PCB制造的工艺流程&#xff0c;但仍然想在过孔的铜厚和PCB的过孔厚径比两个方面再深入介绍。 PCB铜厚的定义 电路中铜的厚度以盎司(oz)**表示。那么&#xff0c;为什么用重量单位来表示厚度呢? 盎司(oz)的定义 将1盎司(28.35 克)的铜…

Spring Security认证流程

认证是Spring Security的核心功能之一&#xff0c;Spring Security所提供的认证可以更好地保护系统的隐私数据与资源&#xff0c;只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置&#xff0c;开发者也可以根据自己实际的环境进行自定义身…

TXPOLARITY/RXPOLARITY设置

TXPOLARITY/RXPOLARITY&#xff1a;该端口用来反向输出数据的极性。 0&#xff1a;表示不反向。TXP是正&#xff0c;TXN是负&#xff1b; 1&#xff1a;标识反向。TXP是负&#xff0c;TXN是正&#xff1b; 如下图所示&#xff1a;

2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)

今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题&#xff0c;可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…

优考试V4.20机构版【可注册】

优考试V4.20机构版&#xff0c;可通过注册机完美激活。 优考试机构版‌是一个功能强大的在线考试系统&#xff0c;适用于各种 考试场景&#xff0c;包括在线考试、培训、学习等多种用途。以下是优考试机构版的主要功能和特点&#xff1a; ‌多层级管理‌&#xff1a;优考试机…

携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放

在4月23日“世界读书日”之际&#xff0c;阿里妈妈联合国家图书馆文创正式发布了三条AI创意视频。 该系列视频以“千年文脉典籍奇谈”为主题&#xff0c;借助阿里妈妈的AIGC能力&#xff0c;以AI链接古今&#xff0c;打开阅读典籍新方式&#xff0c;引起不少人强烈兴趣。据悉&…

MMsegmentation第一弹-(认识与安装)

前言 在刚接触MMsegmentation的时候&#xff0c;我是怎么看都看不明白&#xff0c;那个过程实在是太痛苦了&#xff0c;所以我当时就想着一定要把这个写成文章&#xff0c;希望后来者能很轻松的就上手。该系列文章不涉及框架的底层原理&#xff0c;仅以一个使用者的身份带领读…

React19源码阅读之commitRoot

commitRoot入口 在finishConcurrentRender函数&#xff0c;commitRootWhenReady函数&#xff0c;commitRoot函数。 commitRoot流程图 commitRoot函数 commitRoot 函数是 React 渲染流程中用于提交根节点的关键函数。它的主要作用是设置相关的优先级和状态&#xff0c;然后调…

目标检测:视觉系统中的CNN-Transformer融合网络

一、背景 无人机&#xff08;UAVs&#xff09;在城市自动巡逻中发挥着重要作用&#xff0c;但它们在图像识别方面面临挑战&#xff0c;尤其是小目标检测和目标遮挡问题。此外&#xff0c;无人机的高速飞行要求检测系统具备实时处理能力。 为解决这些问题&#xff0c;我们提出…