linux 没有root权限的用户安装GCC[通俗易懂]

linux 没有root权限的用户安装GCC[通俗易懂]在Linux下,如果有root权限的话,使用sudoaptinstall就可以很方便的安装软件,而且同时也会帮你把一些依赖文件也给编译安装好。但是如果不是用的自己的机器,一般情况下是没有root权限的。所以就需要自己动手下载tar文件,解压安装。在安装中遇到的最大的问题是依赖的问题。手动下载编译GCC,首先下载tar文件,可以在这里下载https://ftp.gnu.org/gnu/gc…

大家好,又见面了,我是你们的朋友全栈君。

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

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

linux 没有root权限的用户安装GCC[通俗易懂]

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

linux 没有root权限的用户安装GCC[通俗易懂]

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

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

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

linux 没有root权限的用户安装GCC[通俗易懂]

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

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

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

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

linux 没有root权限的用户安装GCC[通俗易懂]

不过后来在进行到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,所以需要将该路径加到自己的环境变量中去。

linux 没有root权限的用户安装GCC[通俗易懂]

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

linux 没有root权限的用户安装GCC[通俗易懂]

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

linux 没有root权限的用户安装GCC[通俗易懂]

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

linux 没有root权限的用户安装GCC[通俗易懂]

之后再source .bashrc就可以了

参考:

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

gcc 4.6.3 installation gmp 5.0.5 mpfr 3.1.1 errors

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141352.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决angularjs图片加载失败

    解决angularjs图片加载失败解决angularjs图片加载失败

    2022年5月30日
    55
  • Xray使用的经验分享(xray+burp的使用[套娃测试])

    Xray使用的经验分享(xray+burp的使用[套娃测试])xray是一种功能强大的扫描工具。xray社区版是长亭科技推出的免费白帽子工具平台,由多名经验丰富的安全开发者和数万名社区贡献者共同打造而成。有趣的功能自己的安全评估工具,,支持常见的web安全问题扫描和自定义po

    2022年5月28日
    141
  • python进制转换代码_python十六进制转换成十进制

    python进制转换代码_python十六进制转换成十进制本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数⇒二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位如:0.25的二进制0.25*2=…

    2025年11月30日
    4
  • 基于DNS解析的GSLB《CDN技术详解》

    基于DNS解析的GSLB《CDN技术详解》基于DNS解析的GSLB工作方式基于DNS解析的GSLB方案实际上就是把负载均衡设备部署在DNS系统中。在用户发出任何应用连接请求时,首先必须通过DNS系统来请求获得服务器的IP地址,基于DNS的GSLB正是在返回DNS解析结果的过程中进行智能决策,给用户返回一个最佳的服务器的IP地址。从用户的视角看,整个应用流程与没有GSLB参与时没有发生任何变化。DNS系统本身是具备简单负载分配能力的,这…

    2022年6月10日
    41
  • python语言介绍

    python语言介绍Python是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。发展历程自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。Python的创始人为GuidovanRossum。1989年圣诞节…

    2022年5月8日
    36
  • Java程序设计(高级及专题)- 多线程[通俗易懂]

    Java程序设计(高级及专题)- 多线程[通俗易懂]Java程序设计(高级及专题)- 多线程

    2022年4月22日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号