GCC的安装

要学习和修改GCC源码,首先第一步是在自己的机器上用GCC源代码编译出一个选定版本的GCC(这里以gcc-5.3.0.tar.bz2在mintOS上的安装为例,源码可以从http://gcc.gnu.org去下载)。除此之外,GCC依赖于gmp、mpfr、mpc三个库,如果你机器上没有,或者版本太老以至于无法支持新的GCC,那么你还得去把这三个库下载下来。

一般来说,下载GCC是从GNU的FTP镜像网站去下载,gcc的代码包一般放置在/release/gcc-x.y目录下,而那三个依赖库一般放置在/infrastructure/目录下。

1、把依赖库和GCC解包

tar -jxvf gmp-4.3.2.tar.bz2 -C /usr/src/

tar -jxvf mpfr-2.4.2.tar.bz2 -C /usr/src/

tar -xvf mpc-0.8.1.tar.gz -C /usr/src/

tar -jxvf gcc-5.3.0.tar.bz2 -C /usr/src/

2、到自己的home目录下编译依赖库

cd ~ #~表示用户目录(例如/home/chandler)

mkdir gmp-build

cd gmp-build

/usr/src/gmp-4.3.2/configure --prefix=/usr/local/gmp-4.3.2 #指定安装位置

make

make check #check可能未全部通过,无妨

make install #安装需切换到root权限

cd ~

mkdir mpfr-build

cd mpfr-build

/usr/src/mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2

make

make check

make install

cd ~

mkdir mpc-build

cd mpfr-build

/usr/src/mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-mpfr=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2

make

make check

make install

3、编译GCC

cd ~ #~仍然表示用户目录

mkdir gcc-build

cd gcc-build

/usr/src/gcc-5.3.0/configure --prefix=/usr/local/gcc-5.3.0 --with-mpc=/usr/local/mpc-0.8.1 --with-mpfr=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2 --enable-languages=c,c++ #可能需要加上--disable-multilib

make

make install

Q:在编译过程中,可能出现configure:error:cannot compute suffix of object files :cannot compile

解决办法 :安装目录下有错误日志的config.log,打开config.log 查找下error会发现很多错误,大部分是库没找到,如果不想做细分析的话,在shell中输入以下命令,然后重新编译,整个编译过程花了一个多小时

export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib

4.安装完成后,到/usr/local/bin目录下建立符号连接

sudo ln -s /usr/local/gcc-5.3.0/bin/gcc gcc530

sudo ln -s /usr/local/gcc-5.3.0/bin/g++ g++530

在正式使用之前还有最后一个工作要做,就是将前面安装的三个库的路径加进环境变量LD_LIBRARY_PATH中,不然在编译程序的时候会出错,提示找不到共享库。编辑/etc目录下的bash.bashrc文件配置shell环境。在这个文件中添加以下语句:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib #需要加gcc的lib吗

保存重启系统后,就可以使用新装的gcc了

PS:最简单的办法是在gcc编译之前,即make之前,在/etc/bash.bashrc下配置即可,然后完成编译,安装

参考资料:http://blog.csdn.net/sonicling/article/details/6702031#comments

linux 源代码gcc安装,linux下源码安装GCC相关推荐

  1. unbuntu cmake安装mysql_Ubuntu下源码安装MySQL-5.5.25a

    Ubuntu下源码安装MySQL-5.5.25a,今天在Ubuntu Linux下本来玩玩Android的源码看下的.那小的怎看根目录的空间已然不多.所以想把 今天在Ubuntu Linux下本来玩玩 ...

  2. rabbitnq 源码安装_linux下源码安装rabbitMq

    一.安装erlang 前期环境安装 1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-dev ...

  3. 卸载源码安装mysql_CentOS7下源码安装MySQL5.7.6+

    卸载CentOS7默认携带的mariadb包 # 检查mariadb安装包 [root@wing ~]# rpm -qa | grep -i mysql [root@wing ~]# rpm -qa ...

  4. Linux环境下安装MySQL(源码安装)

    Linux环境下安装MySQL(源码安装) 1.事先从官网/国内镜像站点中下载源码安装包,上传至服务器: 2.安装开发工具和开发包(从5.5开始使用cmake编译) 3.创建用户和组 4.编译安装My ...

  5. linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  6. Linux下源码安装CodeBlocks

    Linux下源码安装CodeBlocks qianghaohao(CodingNutter) 一. 安装平台说明: CentOs6.4-i686  gcc-4.4.7 二. 下载最新源码: http: ...

  7. linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  8. 【转载】64位Linux下源码安装apache2

    64位下源码安装apache2,中间过程遇到了好几个错误,总结起来都是跟64位机器下,lib库格式不匹配的问题,如: /usr/lib/libexpat.so: could not read symb ...

  9. linux安装glib,glib源码安装使用方法

    glib源码下载地址 问题描述:centos 6.5 源码编译qemu  ./configure时出现错误  ERROR: glib-2.22 gthread-2.0 is required to c ...

  10. centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11

    本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. CentOS7 下源码安装MySQL 8.0.11 系 ...

最新文章

  1. java编写字符串连接程序注释_一种利用JAVA注释支持多行字符串的方法
  2. 劫持选举 EOJ 3535(随机)
  3. 本地maven仓库_Maven(四):仓库
  4. 机器学习(十五)——loss function比较、独立成分分析
  5. 打开vs2010,提示无效的许可证数据,需要重新安装
  6. javascript:使用canvas绘图2D图形
  7. 洛谷—— P2658 汽车拉力比赛
  8. batocera整合包_模擬器作業系統RetroPie更新至4.6,支援Raspberry Pi 4、新增NeoGeo CD模擬功能...
  9. 背包问题回溯法c语言程序,C语言回溯法解决背包问题
  10. 前端项目:基于Nodejs+vue开发实现酒店管理系统
  11. C#控制台应用程序的输入输出
  12. 美团笔试.最大子段和
  13. Hcse 交换知识点-2
  14. 行测--资料分析--fb--高照老师
  15. 测试图片色域软件,显示器色域检测图
  16. 鼠标右键中没有新建选项,解决方法!
  17. python中的error:excepted an indented block
  18. Tarjan的缩点割点概述
  19. PMP|项目经理如何做好相关方管理?
  20. mysql数据库之字段类型

热门文章

  1. awk使用多个分割符
  2. Dreamweaver中出现 以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息 问题的解决方案(8,cs3,cs4似乎都会出现改问题)...
  3. 维基百科 双线性插值
  4. Java数据类型占用内存最多的_java基础数据类型的内存占用
  5. python下载过程中最后一步执行opencv出错怎么回事_PyCharm安装opencv-python和opencv-contrib-python的一些问题和解决方法_2018-09-27...
  6. 高光谱图像pca降维matlab_基于 SAE-LR 的高光谱分类
  7. MSYS2 的安装与使用
  8. 树莓派docker 搭建owncloud个人云盘
  9. 开发笔记1 关于指针,结构体使用指针的问题
  10. SpringMVC中解决POST和GET请求中文乱码问题