linux 没有root权限的用户安装GCC

在Linux下,如果有root权限的话,使用sudo apt install 就可以很方便的安装软件,而且同时也会帮你把一些依赖文件也给编译安装好。但是如果不是用的自己的机器,一般情况下是没有root 权限的。所以就需要自己动手下载tar文件,解压安装。在安装中遇到的最大的问题是依赖的问题。

手动下载编译GCC ,首先下载tar文件,可以在这里下载https://ftp.gnu.org/gnu/gcc。下载完之后,如果是远程登录的机器,可以使用scp 将文件传到那台机器,如下所示


安装GCC 还需要gmp、mpfr、mpc。下载的时候需要注意它们之间的版本,我下载的版本是:

在安装的时候,需要注意顺序。

首先将tar解压,使用tar -zxvf xxxx.tar.gz。安装的时候,首先安装gmp、之后安装mpfr、最后安装mpc,因为它们之间有依赖关系。

首先进入解压后的gmp-5.1.3文件夹下:

之后使用 ./configure --prefix=/path/to/install 设置安装路径。因为是没有root权限的,所以需要修改安装路径,安装到自己有权限的文件夹下。

如果前一步没有问题,使用make -j4 编译,使用-j 选项可以加快编译速度

最后使用 make install。 完成后,可以在/path/to/install 下看到include lib 与share

mpc、mpfr 的安装方法类似,不过需要在./configure 这一步做一些改动,比如,在安装mpc 的时候,由于依赖gmp 与mpfr,所以需要使用--with  ,如下所示:

不过后来在进行到gcc 的make 的时候,出现了错误,"cannot open shared object file: No such file or directory",错误显示的是找不到mpc的一个.so文件,但是之前已经使用make install 过了,则mpc 的lib文件夹下就有。在网上找到了解决方法,使用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/your/so ,提示缺少哪个,就添加对应的路径,之后再次使用make 编译gcc。

最后使用make install 之后,gcc 就可以使用了。不过由于系统中有旧版本的GCC,但是由于没有ROOT权限,所以不能将旧版本卸载掉,所以需要添加的自己的path中。

在这之前,先看一下GCC能不能用,图中,下面的GCC 7.2.0就是新安装的GCC。不过目前只有加上路径才能使用当前新的GCC,所以需要将该路径加到自己的环境变量中去。

在自己的用户目录下vi .bashrc, 添加gcc 的bin路径,注意加到PATH 的前面,因为在查找时会首先找到自己安装的GCC

编辑完之后,使用source .bashrc ,之后使用直接使用GCC 就是自己安装的那个版本了

在编译执行程序的时候,发现找不到LIBCXXX之类的信息。需要用当前安装的so 代替之前的。解决方法是,在~下的.bashrc 中编辑export LD_LIBRARY_PATH

之后再source .bashrc就可以了


参考:

GNU/Linux GCC 指定动态库路径_牧马人_新浪博客

gcc 4.6.3 installation gmp 5.0.5 mpfr 3.1.1 errors


### 在Linux上无Root权限安装GCC 对于没有root权限用户,在Linux环境中依然可以通过编译源码的方式安装GCC。这通常涉及下载所需版本的GCC及其依赖库,配置编译选项以便将这些工具链安装用户的家目录或其他允许写入的位置。 #### 下载必要的文件 首先访问官方GNU镜像站点获取最新的GCC发布包以及其他必需的支持库如GMP、MPC和MPFR等[^2]。例如: ```bash wget https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz tar -xf gcc-12.2.0.tar.gz cd gcc-12.2.0 ``` 接着同样方法分别下载对应的辅助库版本,并放置于同一级目录下[^3]。 #### 准备构建环境 创建一个新的目录用于存放编译后的二进制文件和其他资源,避免污染原始源代码树结构: ```bash mkdir ~/local mkdir objdir cd objdir ``` 这里`~/local`作为目标前缀被用来存储最终生成的应用程序与库;而`objdir`则是临时工作空间。 #### 配置并编译GCC 执行configure脚本来设定安装路径及其他参数,确保指定了正确的`--prefix`指向之前建立好的个人本地文件夹位置。同时为了简化后续操作可考虑加入`--enable-languages=c,c++`来限定只编译C/C++部分减少等待时间[^4]: ```bash ../gcc-12.2.0/configure --prefix=$HOME/local --disable-multilib --enable-languages=c,c++ make -j$(nproc) make install ``` 上述命令中的`$HOME/local`应替换为你实际想要安装GCC的具体路径。`-j$(nproc)`表示利用多核CPU加速编译过程。 #### 设置环境变量 为了让新安装GCC能够正常使用,还需要更新shell会话里的PATH环境变量以包含新的binaries所在位置。可以在`.bashrc`或者其他启动脚本里添加如下行[^5]: ```bash export PATH="$HOME/local/bin:$PATH" source ~/.bashrc ``` 完成以上步骤之后就可以验证是否成功安装了期望版本的GCC了: ```bash gcc --version ``` 如果一切顺利,则应该能看到刚刚自行编译的那个特定版次的信息显示出来。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值