GCC源码编译
一.介绍
- GCC:全称GNU Compiler Collection,GNU编译器套件。是一款可以用来编译C、C++、Objective-C、Fortran、Java等多种 语言的编译器。由于在ubuntu-18.04-LTS版本中gcc版本为gcc-7.4.0,版本比较低。截止该文章之前GNU已经发布了gcc-9.1.0版本,我们以最新的gcc-9.1.0为例,编译出最新的gcc编译器。
- 系统环境:ubuntu-18.04-LTS
- 前期依赖库:apt-get install bison flex m4 build-essential libmpc-dev gcc gcc-multilib (编译最新的gcc依赖老的gcc编译器)
二.GCC依赖的三个源码库
- gmp (gcc编译依赖的三个库,源码编译)
- mpc
- mpfr
二.GCC源码和依赖项源码准备
- gcc官网:https://gcc.gnu/
由于官网在国外,下载速度较慢,我们此处选择第二种方式下载源码 - 清华镜像站:https://mirrors.tuna.tsinghua.edu/
2.1 我们选择到清华的镜像站上下载最新的gcc源码:https://mirrors.tuna.tsinghua.edu/gnu/gcc/gcc-9.1.0/
2.2 选择gcc-9.1.0.tar.gz 这个源码包下载
2.3 解压:tar -xzvf gcc-9.1.0.tar.gz - gmp源码下载:https://mirrors.tuna.tsinghua.edu/gnu/gmp/
3.1 选择gmp-6.1.2.tar.bz2版本
3.2 将源码解压到gcc-9.1.0目录下:tar -xjvf gmp-6.1.2.tar.bz2
3.3 将gmp-6.1.2目录名重命名为gmp,编译时会根据这个目录名将gmp库也编译一遍 - mpc源码下载:https://mirrors.tuna.tsinghua.edu/gnu/mpc/
4.1 选择mpc-1.1.0.tar.gz版本
4.2 将源码解压到gcc-9.1.0目录下:tar -xzvf mpc-1.1.0.tar.gz
4.3 将mpc-1.1.0目录名重命名为mpc (也可选择创建软链接这个方式 ) - mpfr源码下载:https://mirrors.tuna.tsinghua.edu/gnu/mpfr/
5.1 选择mpfr-4.0.2.tar.gz版本
5.2 将源码解压到gcc-9.1.0目录下:tar -xzvf mpfr-4.0.2.tar.gz
5.3 将mpfr-4.0.2目录名重命名为mpfr
编译
- cd gcc-9.1.0
- ./configure --prefix=/opt/gcc-9.1.0 --enable-checking=release --enable-bootstrap --enable-languages=c,c++ --enable-bootstrap (配置编译选项)
- make -j8 (8核心编译,加快编译速度)
- make install (安装编译好的可执行文件和库)
- 安装成功,对于系统上存在的两个版本gcc,可为新版gcc设置软链接解决冲突
参数解释:
- –prefix=/opt/gcc-9.1.0 (指定安装路径)
- –enable-checking=release (增加编译过程中的一些检查)
- –disable-multilib ( 取消多目标库编译,取消32位库编译,在64位机器上默认为enable-multilib)
- –enable-languages=c,c++ (编译器支持编译的语言)
- –enable-bootstrap (进行冗余的编译检查工作)
更多推荐
gcc源码编译
发布评论