文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux下怎么升级GCC

2023-06-27 13:52

关注

今天小编给大家分享一下Linux下怎么升级GCC的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器.目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序.GCC不仅功能非常强大,结构也异常灵活。

Linux下怎么升级GCC

本文描述如何通过编译源码,来升级gcc编译版本,由于CentOS默认gcc编译版本4.8.5太低不能满足需求。故此处给出一个编译脚本。

[root@tencent ~]# mkdir /root/gcc[root@tencent ~]# cd /root/gcc[root@tencent ~]# vim upgradeGcc.sh[root@tencent ~]# chmod +x upgradeGcc.sh

下面为脚本具体内容

#! /bin/bash#在非root用户下,需要进行提权,使用sudo命令#获取GCC源码#sudo wget https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gzwget https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz#解压#sudo tar -zxvf gcc-8.3.0.tar.gztar -zxvf gcc-8.3.0.tar.gz#进入解压后的文件夹cd gcc-8.3.0/#下载安装GCC的先决条件#sudo ./contrib/download_prerequisites./contrib/download_prerequisites#返回上一级目录,建立编译输出目录cd ..#sudo mkdir bulidmkdir bulid#进入输出目录,执行如下命令,生成MakeFile文件cd bulid/#sudo ../gcc-8.3.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib../gcc-8.3.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib#执行命令进行编译,若想加快编译速度,可以在其后面加上-j4(利用4个job,-j8也行),此值不宜设置过高#sudo makemake#安装#sudo make installmake install#检查版本gcc -v#此时,虽安装结束,但path的路径仍为旧路径,故需要更改path环境变量cp /usr/local/lib64/libstdc++.so.6.0.25 /lib64cd /lib64rm -rf libstdc++.so.6ln -s libstdc++.so.6.0.25 libstdc++.so.6

执行如下命令,等待安装完成,预计完成时间较长。

[root@tencent ~]# chmod 777 /root/gcc/upgradeGcc.sh[root@tencent ~]# ./root/upgradeGcc.sh

shell 中的命令既可以以脚本的方式执行,也可以以单条命令执行。

注:在安装过程中,可能会出现没有c++编译环境。此时只需要安装c++编译环境

yum install gcc-c++ -y

如果报下类错误是因为编译时缺少iconv的相关lib,需要安装iconvlib,而本地which iconv可以看到机器上是装有iconv的(which iconv输出结果为:/usr/local/bin/iconv)。如果你的机器也安装了iconv,那么接着往下看,否则先安装下再接着看。

这个问题的原因是linux在查找动态链接库时,忽视了/usr/local/lib中一系列*.so,将其添加到配置文件中,就可以解决。

checking size of off_t... configure: error: in `/tmp/vim74/src':configure: error: cannot compute sizeof (off_t)See `config.log' for more details.

解决办法(有root权限)

打开/etc/ld.so.conf这个配置文件

把下面这行内容添加进去

/usr/local/lib

保存文件,执行命令:/sbin/ldconfig

解决办法(没有root权限)

对于非root用户来说,/etc/ld.so.conf是read-only的,想要解决这个问题也是有办法的。在vim74目录下先执行如下命令:

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH // 为编译器设定额外的搜索路径

原理基本类似,修改ld.so.conf的根本原因只是为了让编译器在make过程中去对应的路径下寻找依赖,这里直接指定搜索路径,是一个效果。

接下来,再make && make install 就正常了。

以上就是“Linux下怎么升级GCC”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯