Windows 安装 GCC

文章目录

  • GCC 是什么?
  • GCC 和 gcc 什么关系?
  • Windows 安装 GCC
    • 选型
    • 下载
    • 安装
    • 配置环境变量
    • 验证
  • 参考文献

GCC 是什么?

GCC(GNU Compiler Collection)是一个开源的编译器套件,由 GNU 项目开发和维护。

GNU 编译器套件包括 C、C++、Objective-C、Fortran、Ada、Go 和 D 语言的编译器,以及这些语言的库(libstdc++,…)。GCC 最初是作为 GNU 操作系统的编译器编写的,为了满足各种编程语言的需求,后来加入了其他语言的编译器和调试器,变成了如今的编译器套件。

GCC 和 gcc 什么关系?

gcc(GNU C Compiler)是由 GNU 开发的 C 语言编译器,用于编译 C 语言代码。

gcc 是 GCC 套件中众多编译器的一个,是 GCC 的组成部分。GCC 还包含其他语言的编译器,如 g++ 用于编译 C++ 代码,gfortran 用于编译 Fortran 代码等。这些工具共同构成了 GCC 套件,提供了广泛的编译能力和选项。

Windows 安装 GCC

有时,我们想在 Windows 使用 GCC 中的编译器和其他工具,比如使用 gcc 和 gdb 编译调试 C 代码,那么该如何安装呢?

选型

Windows 版的 GCC 有三个选择:

  • Cygwin
  • MinGW
  • mingw-w64

Cygwin、MinGW 和 mingw-w64 都是在 Windows 操作系统上运行的工具集,用于在 Windows 环境下进行开发和编译。

Cygwin 是一个在 Windows 上运行的开源项目,旨在提供类Unix环境的兼容性。它提供了一套 GNU 和 Open Source 工具,包括编译器(如 gcc)、shell、库等。通过 Cygwin,开发者可以在 Windows 上编译和运行许多 Unix 或 Linux 上的应用程序。Cygwin 提供了对 POSIX 系统调用和 Shell 环境的支持,并提供了一套基于 Cygwin 的 DLL(动态链接库)来实现与 Windows 系统的交互。

MinGW(Minimalist GNU for Windows)是一个轻量级的开发环境,旨在提供 GNU 工具链(如 gcc、g++ 等)在Windows上的运行。MinGW 提供了一组 Windows 本地 API 的头文件和库,使开发者能够使用标准的 GCC 编译器在 Windows 上编译和运行 C 和 C++ 代码。与 Cygwin 不同,MinGW 的目标是直接使用 Windows 本地 API,而不是提供类 Unix 环境的兼容性。

mingw-w64 是 MinGW 的一个分支,它专注于支持 64 位 Windows 系统。与传统的 MinGW 只支持 32 位编译器不同,mingw-w64 提供了 64 位的 Windows 编译器和开发工具。它支持使用 GCC 编译器生成 64 位 Windows 应用程序,并提供了对 Windows API 的头文件和库的支持。mingw-w64 项目也是开源的,旨在提供免费、开放的开发环境。

总之,Cygwin 提供了类 Unix 环境的兼容性,MinGW 和 mingw-w64 则提供了在 Windows 上使用 GCC 编译器进行 C 和 C++ 开发的工具集。其中,mingw-w64 专注于 64 位 Windows 系统的支持。开发者可以根据自己的需求选择适合的工具集来进行 Windows 平台上的开发。

目前,最常用的是 mingw-w64,本文将以 mingw-w64 为例来安装 GCC。

下载

安装软件,最好的下载地方便是官网。

我们在 GCC 官网可以找到不同平台版本的官方网站入口。

在这里插入图片描述

进入到二进制下载页面可以看到 Windows 平台的三个版本。
在这里插入图片描述
然后进入到 mingw-w64 项目的官网下载页面。

在这里插入图片描述

mingw-w64 项目提供了很多 Windows 平台的工具链和包,这里以 w64devkit 为例,安装 C 和 C++ 编译器。大家可以根据自己的需要选择对应的工具。

在这里插入图片描述
按照指引,去 Github 下载即可。

在这里插入图片描述

安装

将下载的 w64devkit 压缩包解压后,放到任意目录即可。我这里将其拷贝到 C:\Program Files\w64devkit

解压后 w64devkit,其目录如下:

在这里插入图片描述
在 bin 目录下,可以看到相关的编译器和 Linux 环境下常用的命令。

在这里插入图片描述

配置环境变量

要想在 Windows 命令行能够使用上述工具,需要将 w64devkit 的 bin 目录加入到环境变量 Path 中。

设置入口:开始 > 设置 > 系统 > 关于 > 高级系统设置 > 环境变量

将 w64devkit 的 bin 目录添加到用户变量或系统变量 Path,我这里加入到用户变量 Path 中。如果想对所有用户生效,需要加入到系统变量。

在这里插入图片描述

验证

打开命令行 Windows cmd 或 PowerShell,执行如下命令:

gcc --version
gcc.exe (GCC) 13.1.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

成功输出 gcc 版本信息,表示 GCC 安装成功。


参考文献

GNU Project
GCC, the GNU Compiler Collection - GNU Project
MinGW-w64

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

讯飞星火_VS_文心一言

获得讯飞星火认知大模型体验授权,第一时间来测试一下效果,使用申请手机号登录后,需要同意讯飞SparkDesk体验规则,如下图所示: 同意之后就可以进行体验了,界面如下: 讯飞星火效果体验 以下Promp…

数据结构【链表】看完还怕拿不下链表?

✨Blog:🥰不会敲代码的小张:)🥰 🉑推荐专栏:C语言🤪、Cpp😶‍🌫️、数据结构初阶💀 💽座右铭:“記住,每一天都是一個新的開始&#x1…

“饶派杯”XCTF车联网安全挑战赛战队巡礼!

2023年5月31日,“饶派杯” XCTF车联网安全挑战赛将于江西省上饶市重磅开赛。本届大赛由江西省委网信办、江西省工信厅、上饶市人民政府主办,旨在深入贯彻落实国家网络强国和交通强国战略部署,推动智能网联汽车技术与产业发展、加快该领域人才…

React项目搭建

一、项目搭建(不采用vite方式) 使用create-react-app生成项目 npx create-react-app pc 进入根目录 cd pc 启动项目 npm start 调整项目目录结构 /src/assets 项目资源文件,比如,图片 等/components 通用组件/pag…

详细分析置换算法

对于操作系统而言,虚拟空间是非常大的,我们往往无法直接将如此大的空间装入内存,而即使我们采用多级页表与段页式存储即使,也仅仅只是节省了页表的大小,如此将如何多的物理页装进内存仍然是一个问题,为此科…

【MySQL学习】MySQL表的复合查询

文章目录 前言一、案例准备二、基本查询三、多表查询四、子查询4.1 单行子查询4.2 多行子查询4.3 多列子查询4.4 FROM子句中的子查询4.5 合并查询4.5.1 UNION4.5.2 UNION ALL 五、自连接六、内外连接6.1 内连接6.2 外连接6.2.1 左外连接6.2.2 右外连接 前言 对MySQL表的基本查…

【容器化应用程序设计和开发】2.7 云原生开发工具和框架

2.7 云原生开发工具和框架 今天我们就简单来讲一下云原生下用到的开发工具和一些基本的框架。云原生开发工具和框架是为了支持现代化的应用程序开发,能够简化云原生应用程序的构建、部署、管理和维护。下面是一些常见的云原生开发工具和框架: Kubernetes…

为什么别人家的ChatGPT比我家的更聪明?

文章目录 引子使用技巧技巧1:使用分隔符技巧2:结构化输出技巧3:整理操作步骤技巧4:做示范技巧5:给定具体的步骤技巧6:生成摘要技巧7:情感分析 好问题的三要素总结 引子 你有没有发现&#xff0…

python+Django音乐播放器网站系统0tr3w

音乐网站系统的后台开发目标是以信息管理系统的管理和开发方法,用目前现有的新技术进行系统开发,提供后台管理员高度友好的界面操作以及迅捷的信息处理。而前台的开发目标是以用户的需求作为主导,提供对用户而言非常友好的界面操作环境以及完…

2023年第十五届B题电工杯初步解题思路

第十五届“中国电机工程学会杯”全国大学生 电工数学建模竞赛题目 B题 人工智能对大学生学习影响的评价 人工智能简称AI,最初由麦卡锡、明斯基等科学家于1956年在美国达特茅斯学院开会研讨时提出。 2016年,人工智能AlphaGo 4:1战胜韩国围棋高手李世石…

(学习日记)AD学习 #2

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

航空公司预订票数学建模论文

航空公司预订票数学建模论文篇1 试谈机票订票模型与求解 一、概述 1. 问题背景描述 在激烈的市场竞争中,航空公司为争取更多的客源而开展的一个优质服务项目是预订票业务,本模型针对预订票业务,建立二元规划订票方案,既考虑航空公司的利润最大…

利用qsort排序

一、简单排序10个元素的一维数组 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:6031) #include<stdio.h> #include<stdlib.h> void print_arr(int arr[], int sz) {int i 0;for (i 0; i < sz; i){printf("%d ", arr[i]);}printf("…

开源赋能 普惠未来|QUICKPOOL诚邀您参与2023开放原子全球开源峰会

QUICKPOOL算力调度系统的诞生和发展&#xff0c;为广大的算力领域从业者和技术开发者&#xff0c;提供了一条中国技术路线&#xff0c;并与IBM LSF、SLURM、PBS、SGE等产品&#xff0c;共同助力全球算力发展。QUICKPOOL算力调度系统成熟、稳定&#xff0c;具备“超算&智算”…

服务高可用保障:服务限流,Nginx实现服务限流

一、前言 1.1什么是限流&#xff1f; 限流存在于高可用服务中。 用于高可用的保护手段&#xff0c;主要包括&#xff1a;缓存&#xff0c;降级&#xff0c;限流 限流&#xff1a;只允许指定的事件进入系统&#xff0c;超过的部分将被拒绝服务&#xff0c;排队或者降级处理。 …

国内行业垂直型SaaS公司有哪些?发展前景如何?

01 国内行业垂直型SaaS公司有哪些&#xff1f; 根据艾瑞咨询测算&#xff0c;2021年中国企业级应用软件市场规模达到2592亿元&#xff0c;SaaS在其中占比达到28.1%。 在企业数字化转型的全景图中&#xff0c;SaaS扮演着应用场景层面的关键作用&#xff0c;往往是企业特定环节数…

ChatGPT系列学习(1)transformer基本原理讲解

文章目录 1. 简介1.1. 发展史 2. Transformer 整体结构3. 名词解释3.1. token 4. transformer输入4.1. 单词 Embedding4.2. 位置Embedding4.3. Transformer Embedding层实现 5. Attention结构5.1. 简介5.2. Self Attention&#xff08;自注意力机制&#xff09;5.2.1. 简介5.2.…

mysql 库的操作

文章目录 mysql 库的操作1. 创建数据库创建数据库案例 2. 字符集和校验规则查看系统默认的字符集合校验规则查看数据库支持的字符集查看数据库支持的字符集较验规则校验规则对数据库的影响 3. 操作数据库查看数据库显示创建语句修改数据库删除数据库查看数据库连接情况 mysql 库…

uniapp内使用 mescroll

前言 在使用uniapp开发项目的过程中&#xff0c;在很多场景里都需要下拉刷新和上拉加载&#xff0c;而 mescroll.js 则是一个非常精致的下拉刷新和上拉加载 js 框架。 官网地址&#xff1a;mescroll 介绍 mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件&#xff0c;时…

Leetcode 1679. K 和数对的最大数目 双指针法

https://leetcode.cn/problems/max-number-of-k-sum-pairs/ 给你一个整数数组 nums 和一个整数 k 。 每一步操作中&#xff0c;你需要从数组中选出和为 k 的两个整数&#xff0c;并将它们移出数组。 返回你可以对数组执行的最大操作数。 示例 1&#xff1a; 输入&#xff1…