1. GCC 简介

谈到 GCC,就不得不提 GNU 计划。GNU 全称 GNU’s Not UNIX,又被称为“革奴计划”,由理查德·斯托曼于 1983 年发起。GNU 计划的最终目标是打造出一套完全自由(即自由使用、自由更改、自由发布)、开源的操作系统,并初步将其命名为 GNU 操作系统。

Linux 内核的基础上,GNU 计划开发了很多系统部件,GCC 就是其中之一(除此之外,还有 Emacs 等非常实用的软件)。

早期 GCC 的全拼为 GNU C Compiler,即 GUN 计划诞生的 C 语言编译器,显然最初 GCC 的定位确实只用于编译 C 语言。但经过这些年不断的迭代,GCC 的功能得到了很大的扩展,它不仅可以用来编译 C 语言程序,还可以处理 C++GoObjective -C 等多种编译语言编写的程序。

与此同时,由于之前的 GNU C Compiler 已经无法完美诠释 GCC 的含义,所以其英文全称被重新定义为 GNU Compiler Collection,即 GNU 编译器套件。

所谓编译器,可以简单地将其理解为“翻译器”。要知道,计算机只认识二进制指令(仅有 0 和 1 组成的指令),我们日常编写的 C 语言代码、C++ 代码、Go 代码等,计算机根本无法识别,只有将程序中的每条语句翻译成对应的二进制指令,计算机才能执行。

作为一款最受欢迎的编译器,GCC 被移植到数以千计的硬件/软件平台上,几乎所有的 Linux 发行版也都默认安装有 GCC 编译器。

2. GCC 安装

2.1 Linux 平台安装 GCC

由于 Linux 操作系统的自由、开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOSUbuntuDebian 等。这些 Linux 发行版中,大多数都默认装有 GCC 编译器(版本通常都较低)。

可以使用 gcc --version 或者 g++ --version 查看当前系统的 gcc 版本:

root@orangepizerolts:~# gcc --version
gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 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.root@orangepizerolts:~#

g++ 版本

root@orangepizerolts:~# g++ --version
g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 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.root@orangepizerolts:~#

或者

root@orangepizerolts:~# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: arm-linux-gnueabihf
.....
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
root@orangepizerolts:~#
root@orangepizerolts:~# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: arm-linux-gnueabihf
......
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)
root@orangepizerolts:~#

每个 Linux 发行版都有自己的软件包管理工具,比如 CentOS 系统的 yum 包管理器、Ubuntu 系统的 apt 包管理器等等,并且大多数 Linux 发行版都提供有 gcc 编译器的二进制软件包。

  • CentOS 安装 gcc
yum -y install gcc
yum -y install gcc-c++
  • Ubuntu 安装 gcc
sudo apt-get install g++

通过执行这 2 条指令,就可以在 CentOS 系统中利用 gcc 命令来执行 C 语言程序,利用 g++ 命令来执行 C++ 程序。

注意,读者切勿认为 GCC 只能用来编译 C 语言程序,g++ 只能用于编译 C++ 程序,这是不对的

2.2 Windows 平台安装 GCC

GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。

目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGWCygwin。其中,

  • MinGW 侧重于服务 Windows 用户可以使用 GCC 编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便;
  • Cygwin 则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用 GCC 编译器,理论上可以运行 Linux 平台上所有的程序。

MinGw 全称 Minimalist GNU for Windows,应用于 Windows 平台,可以为我们提供一个功能有限的 Linux 系统环境以使用一些 GNU 工具,比如 GCC 编译器、gawkbison 等等。

MinGW 的安装参考:

http://c.biancheng.net/view/8077.html

GCC 在 Linux、Windows 系统安装相关推荐

  1. Windows与linux双系统安装

    [源] = [http://xiaomaimai.blog.51cto.com/1182965/294256] Windows与linux双系统 Linux的安装方式有硬盘安装.网络安装.光驱安装. ...

  2. [C] zintrin.h : 智能引入intrinsic函数。支持VC、GCC,兼容Windows、Linux、Mac OS X

    作者:zyl910. 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便.但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数. 一.各 ...

  3. SNMPM 配置 [linux windows solaris]

    SNMPM 配置 [linux windows solaris] 投稿: its    2007-04-30 [url]http://www.cublog.cn/u/19540/showart_177 ...

  4. Linux双系统安装教程【暗影精灵5】

    Linux双系统安装教程 去官网下载ubuntu的镜像源 下载安装镜像工具win32DiskImage 制作系统安装U盘[注意会清空U盘] 1.打开DiskImager选择ubuntu系统的镜像文件, ...

  5. Arch Linux多系统安装安装记录和蓝牙、fcitx5输入法-win\deepin\arch

    Intro 在已有windows.deepin的基础上安装第三个OS:Arch Linux 在Arch Linux wiki上有很多资料,看了一下: 官方only支持x64结构 安装过程有点需要脑子和 ...

  6. TensorFlow学习笔记(一)--windows系统安装配置

    1.关于Tensorflow 国际惯例,先来个总体的简要介绍,摘自一个很强大的TensorFlow中文学习网站(http://www.tensorfly.cn/)的简介 TensorFlow™ 是一个 ...

  7. [转+总结]Linux虚拟系统安装VMware Tools总结

    [转+总结]Linux虚拟系统安装VMware Tools总结 转自中国网络 一.VMware Tools安装手记(For Linux Guest OS) 为什么要装 VMware Tools? 因为 ...

  8. Linux操作系统安装字体笔记

    从事Java程序员的朋友们都知道,大多数客户的应用都是部署在Linux操作系统的服务器上面,因为Linux服务器比Windows服务器成本要低.系统运行更加稳定.但它也有自己不足之处,比如在系统上导出 ...

  9. ubuntu系统虚拟机linux系统,基于虚拟机的Linux操作系统安装(Ubuntu

    <基于虚拟机的Linux操作系统安装(Ubuntu>由会员分享,可在线阅读,更多相关<基于虚拟机的Linux操作系统安装(Ubuntu(13页珍藏版)>请在人人文库网上搜索. ...

最新文章

  1. 买不到“震楼神器”的外国小哥,用Arduino编了一个
  2. python ascii转utf8_ascii 转换为 utf-8
  3. 构造函数也可以进行方法重载_防蛀方法不止涂氟、窝沟封闭,还有一种方法在家就可以进行。...
  4. 「一本通 6.4 例 4」曹冲养猪(CRT)
  5. Hi3536 uboot引导内核全过程
  6. 什么是AOP切面编程
  7. 最新android版本叫什么,Android版本今年将大更新,迈入10.0时代,新特性曝光
  8. 在保护继承中基类的共有成员_鸡啄米:C++编程入门系列之三十八(继承与派生:派生类对基类成员的访问控制之保护继承与私有继承)...
  9. 鸿蒙真机对比ios,为什么说鸿蒙与iOS、安卓不在一个赛道
  10. html5 预览图片原理,html5实现图片预览和查看原图
  11. String的使用方法
  12. java 扔雪球_扔雪球攻略 真正实现扔雪球百发百中!
  13. 如何将「插件化」接入到项目之中?
  14. 回溯法解决n皇后问题
  15. 拍乐云推出业内首个「线上美术教学音视频方案」,打造极致互动体验
  16. SH-SSS丨跨年龄声纹识别:学习年龄不变的说话人特征
  17. 通过百度API获取城市经纬度(1)
  18. C语言编写冰雹猜想(角谷猜想)
  19. 画论59 邹一桂《小山画谱》
  20. 有什么视频转文字软件?快把这些方法收好

热门文章

  1. 2022-2028年中国蛋制品行业市场专项调查及前瞻分析报告
  2. 更改Jenkins升级站点
  3. 遮罩,在指定元素上进行遮罩
  4. 2022-2028全球与中国跨临界二氧化碳系统市场现状及未来发展趋势报告
  5. c语言中struct和c++中class实例对比
  6. 使用 Pytorch 实现 skip-gram 的 word2vec
  7. 在Ant-design-pro框架中引入jQuery和jQuery-ui步骤
  8. LeetCode简单题之数组异或操作
  9. ASIC设计-终极指南
  10. 客快物流大数据项目(五十四):初始化Spark流式计算程序