GCC 在 Linux、Windows 系统安装
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++
、Go
、Objective -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
操作系统,如 CentOS
、Ubuntu
、Debian
等。这些 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 种,分别为 MinGW
和 Cygwin
。其中,
MinGW
侧重于服务 Windows 用户可以使用GCC
编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便;Cygwin
则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用GCC
编译器,理论上可以运行 Linux 平台上所有的程序。
MinGw
全称 Minimalist GNU for Windows
,应用于 Windows 平台,可以为我们提供一个功能有限的 Linux
系统环境以使用一些 GNU
工具,比如 GCC
编译器、gawk
、bison
等等。
MinGW
的安装参考:
http://c.biancheng.net/view/8077.html
GCC 在 Linux、Windows 系统安装相关推荐
- Windows与linux双系统安装
[源] = [http://xiaomaimai.blog.51cto.com/1182965/294256] Windows与linux双系统 Linux的安装方式有硬盘安装.网络安装.光驱安装. ...
- [C] zintrin.h : 智能引入intrinsic函数。支持VC、GCC,兼容Windows、Linux、Mac OS X
作者:zyl910. 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便.但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数. 一.各 ...
- SNMPM 配置 [linux windows solaris]
SNMPM 配置 [linux windows solaris] 投稿: its 2007-04-30 [url]http://www.cublog.cn/u/19540/showart_177 ...
- Linux双系统安装教程【暗影精灵5】
Linux双系统安装教程 去官网下载ubuntu的镜像源 下载安装镜像工具win32DiskImage 制作系统安装U盘[注意会清空U盘] 1.打开DiskImager选择ubuntu系统的镜像文件, ...
- Arch Linux多系统安装安装记录和蓝牙、fcitx5输入法-win\deepin\arch
Intro 在已有windows.deepin的基础上安装第三个OS:Arch Linux 在Arch Linux wiki上有很多资料,看了一下: 官方only支持x64结构 安装过程有点需要脑子和 ...
- TensorFlow学习笔记(一)--windows系统安装配置
1.关于Tensorflow 国际惯例,先来个总体的简要介绍,摘自一个很强大的TensorFlow中文学习网站(http://www.tensorfly.cn/)的简介 TensorFlow™ 是一个 ...
- [转+总结]Linux虚拟系统安装VMware Tools总结
[转+总结]Linux虚拟系统安装VMware Tools总结 转自中国网络 一.VMware Tools安装手记(For Linux Guest OS) 为什么要装 VMware Tools? 因为 ...
- Linux操作系统安装字体笔记
从事Java程序员的朋友们都知道,大多数客户的应用都是部署在Linux操作系统的服务器上面,因为Linux服务器比Windows服务器成本要低.系统运行更加稳定.但它也有自己不足之处,比如在系统上导出 ...
- ubuntu系统虚拟机linux系统,基于虚拟机的Linux操作系统安装(Ubuntu
<基于虚拟机的Linux操作系统安装(Ubuntu>由会员分享,可在线阅读,更多相关<基于虚拟机的Linux操作系统安装(Ubuntu(13页珍藏版)>请在人人文库网上搜索. ...
最新文章
- 买不到“震楼神器”的外国小哥,用Arduino编了一个
- python ascii转utf8_ascii 转换为 utf-8
- 构造函数也可以进行方法重载_防蛀方法不止涂氟、窝沟封闭,还有一种方法在家就可以进行。...
- 「一本通 6.4 例 4」曹冲养猪(CRT)
- Hi3536 uboot引导内核全过程
- 什么是AOP切面编程
- 最新android版本叫什么,Android版本今年将大更新,迈入10.0时代,新特性曝光
- 在保护继承中基类的共有成员_鸡啄米:C++编程入门系列之三十八(继承与派生:派生类对基类成员的访问控制之保护继承与私有继承)...
- 鸿蒙真机对比ios,为什么说鸿蒙与iOS、安卓不在一个赛道
- html5 预览图片原理,html5实现图片预览和查看原图
- String的使用方法
- java 扔雪球_扔雪球攻略 真正实现扔雪球百发百中!
- 如何将「插件化」接入到项目之中?
- 回溯法解决n皇后问题
- 拍乐云推出业内首个「线上美术教学音视频方案」,打造极致互动体验
- SH-SSS丨跨年龄声纹识别:学习年龄不变的说话人特征
- 通过百度API获取城市经纬度(1)
- C语言编写冰雹猜想(角谷猜想)
- 画论59 邹一桂《小山画谱》
- 有什么视频转文字软件?快把这些方法收好