目录
- 1. 前言
- 2. 安装文件准备
- 3. 安装
- 3.1安装GMP
- 3.2安装MPFR
- 3.3安装MPC
- 3.4安装GCC
- 4.GCC版本切换
- 5.参考资料
1. 前言
当前设备已经安装了GCC-5.4.0(可执行文件位于 /usr/bin 目录,头文件位于 /usr/include 目录,库文件位于 /usr/lib 目录),在不删除现有编译器的条件下安装GCC-9.3.0,便于后续根据需要切换不同版本的编译器。
2. 安装文件准备
GCC-9.3.0依赖GMP(The GNU Multiple Precision Arithmetic Library)、MPFR(Multiple-Precision Floating-Point Library)、MPC(Multi-Precision C Library)三个库,由于这三个库也存在相互依赖关系,整体的安装顺序应为GMP–>MPFR–>MPC–>GCC.
这里给出这些库的下载地址,可根据需要选择对应版本下载。
3. 安装
3.1安装GMP
我下载的版本为gmp-6.2.1,source文件位于/home/gmp-6.2.1目录。为了便于后续对库管理与删除,新建 /usr/local/gmp-6.2.1 目录,并将gmp库安装于此目录,安装指令如下
cd /home/gmp-6.2.1
./configure --prefix=/usr/local/gmp-6.2.1
make -j8
make install -j8
- [第2行] –prefix=/usr/local/gmp-6.2.1:指定gmp库的安装目录,也可以不指定安装目录,编译器默认将可执行文件存放于 /usr/local/bin 目录,库文件存放于 /usr/local/lib 目录,头文件存放于/usr/local/include 目录
- [第3行] make -j8:数字8指定并行执行编译的任务数量,具体数值根据设备核心数量配置
3.2安装MPFR
我下载的版本为mpfr-4.1.1,source文件位于/home/mpfr-4.1.1目录。为了便于后续对库管理与删除,新建 /usr/local/mpfr-4.1.1 目录,并将mpfr库安装于此目录,安装指令如下
cd /home/mpfr-4.1.1
./configure --prefix=/usr/local/mpfr-4.1.1 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib
make -j8
make install -j8
- [第2行] –prefix=/usr/local/mpfr-4.1.1:指定MPFR库的安装目录。也可以不指定安装目录,编译器默认将可执行文件存放于 /usr/local/bin 目录,库文件存放于 /usr/local/lib 目录,头文件存放于/usr/local/include 目录
- 由于MPFR库依赖GMP库,因此需要–with命令指定GMP库的头文件目录和库文件目录。
- [第2行] –with-gmp-include=<your gmp include path>:指定GMP库的头文件目录
- [第2行] –with-gmp-lib=<your gmp lib path>:指定GMP库的库文件目录
- 当然,如果GMP库选择默认方式安装,可不指定这些目录,编译器将在 /usr/include 和 /usr/local/lib 目录中搜索GMP库的头文件和库文件
3.3安装MPC
我下载的版本为mpc-1.3.1,source文件位于/home/mpc-1.3.1目录。为了便于后续对库管理与删除,新建 /usr/local/mpc-1.3.1 目录,并将mpc库安装于此目录,安装指令如下
cd /home/mpc-1.3.1
./configure --prefix=/usr/local/mpc-1.3.1 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib --with-mpfr-include=/usr/local/mpfr-4.1.1/include --with-mpfr-lib=/usr/local/mpfr4.1.1/lib
make -j8
make install -j8
- [第2行] –prefix=/usr/local/mpc-1.3.1:指定MPC库的安装目录。也可以不指定安装目录,编译器默认将可执行文件存放于 /usr/local/bin 目录,库文件存放于 /usr/local/lib 目录,头文件存放于 /usr/local/include 目录
- 由于MPC库依赖GMP库和MPFR库,因此需要–with命令指定GMP库和MPFR库的头文件目录和库文件目录。当然,如果GMP库和MPFR库选择默认方式安装,可不指定这些目录,编译器将在 /usr/include 和 /usr/local/lib 目录中搜索GMP库和MPFR库的头文件和库文件。
3.4安装GCC
gcc的source文件位于 /home/gcc-9.3.0 目录。为了便于后续对库管理与删除,新建 /usr/local/gcc-9.3.0 目录,并将gcc库安装于此目录,安装指令如下
cd /home/gcc-9.3.0
./configure --prefix=/usr/local/gcc-9.3.0 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib --with-mpfr-include=/usr/local/mpfr-4.1.1/include --with-mpfr-lib=/usr/local/mpfr4.1.1/lib --with-mpc-include=/usr/local/mpc-1.3.1/include --with-mpc-include=/usr/local/mpc-1.3.1/lib
make -j8
make install -j8
- [第2行] –prefix=/usr/local/gcc-9.3.0:指定GCC库的安装目录。也可以不指定安装目录,编译器默认将可执行文件存放于 /usr/local/bin 目录,库文件存放于 /usr/local/lib 目录,头文件存放于 /usr/local/include 目录。这样做将覆盖原有的GCC-5.4.0编译器
- 由于GCC库依赖MPC库、GMP库和MPFR库,因此需要–with命令指定这些库的头文件目录和库文件目录。当然,如果这些库选择默认方式安装,可不指定这些目录,编译器将在 /usr/include 和 /usr/local/lib 目录中搜索这些库的头文件和库文件。
4.GCC版本切换