自己下载源码啊手动编译gcc/g++_gcc-4.9.4手动编译安装-程序员宅基地

技术标签: Linux  gcc  g++  linux  编译安装  源码  

1. 编译新版gcc需要旧版支持

 1)确认是否有安装gcc

   gcc -v

2) 如果没有安装gcc, 如果机子有联网,则可以使用以下方法

  center-os系统:
  yum -y install gcc
  yum -y install gcc-g++

 

  ubuntu系统:

  sudo apt-get installgcc

  sudo apt-get installg++

2
确认有旧版的gcc之后,下载gcc_4.9.3

 wget  http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2
1
)解压
   tar -jxvf gcc-4.9.3.tar.bz2
 
2
)下载依赖项

  先进入到解压后的目录
  cd gcc-4.9.3
 
可有如下2中方法下载依赖项(2.12.2任选其一)。


2.1
)用其自带的下载脚本
    ./contrib/download_prerequisites

    下载好以后会得到3个目录gmpmpcmpfr

2.2
如果上面脚本连接失败,则可以到国内csdn下载(当然不仅限于此)

    http://download.csdn.net/detail/alex_my/7681299

    下载好以后会得到3个压缩包,手动解压并建立软链接

tar -jxvf gmp-4.3.2.tar.bz2
    tar -zxvf mpc-0.8.1.tar.gz
    tar -jxvf mpfr-2.4.2.tar.bz2
    ln -sf gmp-4.3.2 gmp
    ln -sf mpc-0.8.1 mpc
    ln -sf mpfr-2.4.2 mpfr

3
编译前配置configure
 ../gcc-4.9.3/configure --prefix=
/home/lh/gcc-4.9.3/build--enable-threads=posix --disable-checking --enable--long-long--with-system-zlib --enable-languages=c,c++

../gcc-4.9.3/configure --prefix=/home/lh/gcc-4.9.3/build--enable-threads=posix --disable-checking --enable--long-long--with-system-zlib --enable-languages=c,c++

4可视机器cpu核心数调整,加参数-j

    make –j64

    假如编译错误,可能需要安装sudo apt-get install bison build-essential flex


5
经过漫长的等待后
    sudo make install

6)  修改系统使用的gcc/g++

   一般gcc/g++会安装到/usr/local/bin中,而编译时默认使用的是/usr/bin中的版本,因此,需要重新制作链接。
    sudo rm -rf /usr/bin/gcc
    sudo rm -rf /usr/bin/g++
    sudo ln -s /usr/local/bin/gcc/usr/bin/gcc
    sudo ln -s /usr/local/bin/g++/usr/bin/g++

 7) 
最后,检验安装是否成功,使用/home/lh/gcc-4.9.3/build/bin/gcc-v

查看版本。会看到:

xxx@ubuntu:~/Develop/gcc-4.9.0$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.9.3/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure --enable-checking=release --enable-languages=c,c++--disable-multilib
Thread model: posix
gcc version 4.9.3 20150325 (prerelease) (GCC)

 

 

修改默认gcc的路径到新版本

:exportPATH="/home/lh/gcc-4.9.3/build/bin/:$PATH"

(只对终端有效)

修改永久有效:

vim .bashrc

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/l919898756/article/details/81015617

智能推荐

V-rep学习笔记:机器人路径规划2-程序员宅基地

文章浏览阅读1.8k次。   路径规划问题是机器人学研究的一个重要领域,它是指给定操作环境以及起始和目标的位置姿态,要求选择一条从起始点到目标点的路径,使运动物体(移动机器人或机械臂)能安全、无碰撞地通过所有的障碍物而达到目标位置。路径规划从研究对象上可分为关节式机械臂和移动机器人。一般来讲前者具有更多的自由度,而后者的作业范围要更大一些,这两类对象具有不同的特点,因此在研究方法上略有不同。在V-rep学习笔记:机器人路..._collision pairs

问题:U8的存货同步到本地时,报“数据库可能存在相同的编码”_数据库可能已经存在相同的编码等-程序员宅基地

文章浏览阅读1.5k次。1.环境:U8与本地某程序。跨服务器、跨数据库。2.问题:U8的存货同步到本地时,报“数据库可能存在相同的编码”。3.原因:在确认了U8程序正常、本地程序正常、U8数据库正常、本地数据库正常、链接服务器正常、触发器本身正常后,回到了问题的本身:为何原来的同步执行正常,但是现在的存货保存却异常,怀疑是最新的存货有问题。所以先停了触发器,然后用U8做了一个存货,正常保存后。启用触发器,直接用刚_数据库可能已经存在相同的编码等

EOS与ESD的区别_eos和esd的区别-程序员宅基地

文章浏览阅读7.9k次。摘要:什么是EOS?EOS与ESD的区别是什么?EOS为ELectrical Over Stress的缩写,指所有的过度电性应力。当外界电流或电压超过器件的最大规范条件时,器件性能会减弱甚至损坏。一、什么是EOS?EOS为ELectrical Over Stress的缩写,指所有的过度电性应力。当外界电流或电压超过器件的最大规范条件时,器件性能会减弱甚至损坏。EOS通常产生于:1.电源(AC/DC) 干扰、电源杂讯和过电压。2.由于测试程序切换(热切换)导致的瞬变电流..._eos和esd的区别

API网关之动态路由_api路由-程序员宅基地

文章浏览阅读1.3k次。AIP网关 动态路由_api路由

强一致性 弱一致性 最终一致性-程序员宅基地

文章浏览阅读4.5k次,点赞4次,收藏22次。在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick)。在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子。CAP原理中,有三个要素:一致性(Consistency)可用性(Availability)分区容忍性(Partition tolerance)CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分..._强一致性 弱一致性 最终一致性

Android 相册图库功能,按时间排序_android 加载网络图片列表时间轴相册-程序员宅基地

文章浏览阅读8.6k次,点赞4次,收藏21次。TimeAlbum 时间相册功能说明1、图片和视频资源根据日期排序显示。 2、图片视频预览功能,图片、视频预览带缓存功能。 3、单个图片或视频可进行删除及分享操作。 4、多张图片进行分享功能,多张图片和视频进行删除功能。 5、Decoration可自定义扩展。 6、图片显示可自定义扩展。 7、图片视频可自定义预览操作。依赖如何使用只需要继承AlbumFr..._android 加载网络图片列表时间轴相册

随便推点

ESP32单片机入门篇-程序员宅基地

文章浏览阅读8.8k次,点赞11次,收藏88次。ESP32单片机是一款基于改进的Tensilica LX6微架构的32位双核处理器 SoC,配备2.4 GHz Wi-Fi和蓝牙功能。由于其低功耗、高速度和广泛的应用适用性而被广泛应用。本文将介绍ESP32单片机的基本概念,开发环境,开发语言和一些注意事项,并提供一些简单的代码例程,以点亮LED灯和控制继电器为例。_esp32

Java WEB开发基础知识-程序员宅基地

文章浏览阅读2.9w次,点赞53次,收藏319次。一、WEB应用程序B/S ( browser/server ,浏览器/服务器)架构基于HTTP传输协议(超文本传输协议,回忆HTML的名字:超文本标记语言)WEB程序必须要运行在web容器上,如Tomcat /Jboss/WebLogic等二、HTTP协议HTTP使用TCP作为它的支撑运输层协议,默认的端口是80(缺省端口)。超文本传输协议(Hypertext Transfer Protocol,..._java web开发

SQL语句操作优先级顺序_inner left优先级-程序员宅基地

文章浏览阅读1.7w次,点赞4次,收藏18次。SQL语句操作优先级顺序原文所在SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回_inner left优先级

C51单片机:点击一次按键,实现LED显示状态的亮灭转变_单片机按键按一次亮一个灯-程序员宅基地

文章浏览阅读9.1k次,点赞3次,收藏30次。#include <REGX52.H>sbit led=P1^0;//p1.0口接ledsbit button=P3^0;//p3.0口接控制int i,j;//整数i,jvoid main( )//主函数{ led=1;//led初始状态 while(1)//循环 { if(button==0)//按下开关 { for(i=0;i<10;i++);//延时去抖 while(button==0);//检测松手 l._单片机按键按一次亮一个灯

Python 爬取红酒网站https://www.vivino.com_vivino网站爬虫-程序员宅基地

文章浏览阅读2.6w次。用到了进程池,代理import requestsimport jsonimport jsonpathimport pymysqlimport queuefrom multiprocessing import Poolimport randomrequests.packages.urllib3.disable_warnings()# 创建连接db = pymysql.c..._vivino网站爬虫

nginx中try_files $uri $uri/ /index.html的作用 和 $uri的含义

的含义是:首先尝试按照请求的URI去寻找对应的文件,如果找不到,再尝试将请求作为目录处理,如果还是找不到,最后就返回。这对于单页应用来说非常有用,因为无论用户请求的是什么URL,服务器都会返回同一个HTML文件(即。:这是Nginx内置的一个变量,代表当前请求的URI,不包括参数部分。例如,如果请求的URL是。:尝试将请求作为目录处理,如果这个目录存在,Nginx会试图返回该目录下的默认文件(通常是。这句话是Nginx服务器配置中的一条指令,用于设置处理请求的策略。都无法找到对应的文件或目录,那么就返回。