gcc安装及使用

GCC

GCC简介

  • 早期 GCC 的全拼为 GNU C Compiler,即 GUN 计划诞生的 C 语言编译器,显然最初 GCC 的定位确实只用于编译 C 语言。但经过这些年不断的迭代,GCC 的功能得到了很大的扩展,它不仅可以用来编译 C 语言程序,还可以处理 C++、Go、Objective -C 等多种编译语言编写的程序。与此同时,由于之前的 GNU C Compiler 已经无法完美诠释 GCC 的含义,所以其英文全称被重新定义为 GNU Compiler Collection,即 GNU 编译器套件。

GCC在Linux的安装

查看当前GCC的版本

  • 命令:gcc --version或者gcc -v

快速安装GCC

  • 此处以ubuntu系统的为例
  • 命令:sudo apt-get install gcc
    • 因为已经安装了所以没有安装的过程
  • 注:采用此方式安装的 GCC 编译器,版本通常较低。

编译安装GCC

  • 此方式需要耗费的时间较长(几个小时),但支持安装指定版本的 GCC 编译器,并适用于大多数 Linux 发行版;同时,如果想对已安装的 GCC 编译器进行版本升级,也可以使用此方式。
  • 编译安装 GCC 编译器需要提前到 GCC 官网下载指定版本的 GCC 源码安装包,读者可直接点击GCC源码包进行下载。
  • 安装步骤:
    1. 找到下载好的 gcc-10.2.0.tar.gz 安装包(2020年7月23日更新),将其解压至 /usr/local/ 目录下,命令为:sudo tar -xf gcc-10.1.0.tar.gz -C /usr/local
    2. 紧接着执行如下指令,下载安装 GCC 所需要的依赖包(如 gmp、mpfr、mpc 等):进入/usr/local/gcc-10.2.0目录下 cd /usr/local/gcc-10.2.0,之后执行安装依赖包的命令 ./contrib/download_prerequisites
    3. 在/usr/local目录下手动创建一个目录,用于存放编译 GCC 源码包生成的文件。执行如下命令:创建目录sudo mkdir gcc-build-10.2.0 之后进入gcc-10.2.0目录下cd gcc-10.2.0
    4. 通过执行如下指令,可以配置 GCC 支持编译 C 和 C++ 语言:../gcc-10.2.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    5. 在第 4 步创建好 makefile 文件之后,接下来就可以使用 make 命令来编译 GCC 源程序:sudo make(此过程十分耗时,本机使用vmware虚拟机,运行内存4GB,用了8个线程make -j8花了35分钟)
    6. 最后在漫长的等待后不要忘了执行如下命令安装 gcc:sudo make install(如果此时直接执行 gcc --version,则 GCC 版本仍会显示之前安装的版本。操作系统重启之后,GCC 版本就会自行更正过来。)
    7. 注意:因为/usr/local所在目录本身需要sudo权限才能访问,所以最好在每个命令前加上sudo;如果某个命令执行不成功也可加上sudo再试一下。

gcc和g++命令的区别

  • 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序,用 g++ 指令编译 C++ 代码。需要强调的一点是,这并不是 gcc 和 g++ 的区别,gcc 指令也可以用来编译 C++ 程序,同样 g++ 指令也可以用于编译 C 语言程序。
  • 只要是 GCC 支持编译的程序代码,都可以使用 gcc 命令完成编译。可以这样理解,gcc 是 GCC 编译器的通用编译指令,因为根据程序文件的后缀名,gcc 指令可以自行判断出当前程序所用编程语言的类别。(gcc 指令也为用户提供了“手动指定代表编译方式”的接口,即使用 -x 选项。例如,gcc -xc xxx 表示以编译 C 语言代码的方式编译 xxx 文件;而 gcc -xc++ xxx 则表示以编译 C++ 代码的方式编译 xxx 文件。)
  • 使用 g++ 指令,则无论目标文件的后缀名是什么,该指令都**一律按照编译 C++**代码的方式编译该文件。
  • 如果想使用 gcc 指令来编译执行 C++ 程序,需要在使用 gcc 指令时,手动为其添加-lstdc++ -shared-libgcc选项,表示 gcc 在编译 C++ 程序时可以链接必要的 C++ 标准库。即g++ 指令就等同于gcc -xc++ -lstdc++ -shared-libgcc指令

指定编译标准

(持续更新中)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值