非root用户编译安装GCC 参考资料
源码下载地址
非root权限下源码安装GCC )
linux 没有root权限的用户安装GCC
GCC编译器下载和安装教程(针对Linux发行版)
mpc-0.8.1下载地址
编译安装GCC
下载GCC及其依赖的源码
这里以gcc-6.5.0为例,下载解压。tar -zxcf gcc-6.5.0.tar.gz
,进入目录cd gcc-6.5.0/contrib/
,查看文件cat download_prerequisites
,查看依赖的版本号
1 2 3 MPFR=mpfr-2.4.2 GMP=gmp-4.3.2 MPC=mpc-0.8.1
然后在镜像网站下载指定版本依赖,其中mpc0.8.1在国内镜像网站没有找到,可以直接在这里下载 。 解压命令
1 2 3 tar -zxvf gmp-4.3.2.tar.gz tar -zxvf mpc-0.8.1.tar.gz tar -zxvf mpfr-2.4.2.tar.gz
编译安装
根据参考资料,编译安装有两种方式, 一种是linux 没有root权限的用户安装GCC ,对gcc和依赖依次编译安装,这样做需要注意依赖的安装顺序。
首先安装gmp、之后安装mpfr、最后安装mpc,因为它们之间有依赖关系。
并且依赖项存在依赖时,还需要在编译时加上with选项。另一种是一起编译。
把这三个依赖包拷贝到gcc源代码目录一块编译
首先在gcc-6.5.0新建文件夹mpfr、gmp和mpc,然后将它们复制gcc源目录下。
1 2 3 mv gmp-4.3.2 gcc-6.5.0/gmp mv mpfr-2.4.2 gcc-6.5.0/mpfr mv mpc-0.8.1 gcc-6.5.0/mpc
进入gcc-6.5.0目录,即cd gcc-6.5.0
。 然后执行以下命令,分别生成makefile,编译,将文件复制到指定目录。
1 2 3 4 5 6 #生成MakeFile,换成立自己的绝对路径 ./configure --prefix=/home/ljj/.local --enable-checking=release --enable-languages=c,c++ --disable-multilib #编译,开启4个线程 make -j4 #拷贝到.local目录 make install
修改环境变量
此时执行gcc --version
显示的是 7.4.0. 修改~/.bashrc
文件,在文件末尾添加
1 export PATH=/home/ljj/.local/bin:$PATH
执行source ~/.bashrc
,使修改生效. 再次执行gcc --version
,显示的是6.5.0.