linux 源代码gcc安装,linux下源码安装GCC
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相关推荐
- unbuntu cmake安装mysql_Ubuntu下源码安装MySQL-5.5.25a
Ubuntu下源码安装MySQL-5.5.25a,今天在Ubuntu Linux下本来玩玩Android的源码看下的.那小的怎看根目录的空间已然不多.所以想把 今天在Ubuntu Linux下本来玩玩 ...
- rabbitnq 源码安装_linux下源码安装rabbitMq
一.安装erlang 前期环境安装 1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-dev ...
- 卸载源码安装mysql_CentOS7下源码安装MySQL5.7.6+
卸载CentOS7默认携带的mariadb包 # 检查mariadb安装包 [root@wing ~]# rpm -qa | grep -i mysql [root@wing ~]# rpm -qa ...
- Linux环境下安装MySQL(源码安装)
Linux环境下安装MySQL(源码安装) 1.事先从官网/国内镜像站点中下载源码安装包,上传至服务器: 2.安装开发工具和开发包(从5.5开始使用cmake编译) 3.创建用户和组 4.编译安装My ...
- linux系统下源码安装mysql5.6数据库
linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...
- Linux下源码安装CodeBlocks
Linux下源码安装CodeBlocks qianghaohao(CodingNutter) 一. 安装平台说明: CentOs6.4-i686 gcc-4.4.7 二. 下载最新源码: http: ...
- linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库
linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...
- 【转载】64位Linux下源码安装apache2
64位下源码安装apache2,中间过程遇到了好几个错误,总结起来都是跟64位机器下,lib库格式不匹配的问题,如: /usr/lib/libexpat.so: could not read symb ...
- linux安装glib,glib源码安装使用方法
glib源码下载地址 问题描述:centos 6.5 源码编译qemu ./configure时出现错误 ERROR: glib-2.22 gthread-2.0 is required to c ...
- centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11
本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. CentOS7 下源码安装MySQL 8.0.11 系 ...
最新文章
- java编写字符串连接程序注释_一种利用JAVA注释支持多行字符串的方法
- 劫持选举 EOJ 3535(随机)
- 本地maven仓库_Maven(四):仓库
- 机器学习(十五)——loss function比较、独立成分分析
- 打开vs2010,提示无效的许可证数据,需要重新安装
- javascript:使用canvas绘图2D图形
- 洛谷—— P2658 汽车拉力比赛
- batocera整合包_模擬器作業系統RetroPie更新至4.6,支援Raspberry Pi 4、新增NeoGeo CD模擬功能...
- 背包问题回溯法c语言程序,C语言回溯法解决背包问题
- 前端项目:基于Nodejs+vue开发实现酒店管理系统
- C#控制台应用程序的输入输出
- 美团笔试.最大子段和
- Hcse 交换知识点-2
- 行测--资料分析--fb--高照老师
- 测试图片色域软件,显示器色域检测图
- 鼠标右键中没有新建选项,解决方法!
- python中的error:excepted an indented block
- Tarjan的缩点割点概述
- PMP|项目经理如何做好相关方管理?
- mysql数据库之字段类型
热门文章
- awk使用多个分割符
- Dreamweaver中出现 以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息 问题的解决方案(8,cs3,cs4似乎都会出现改问题)...
- 维基百科 双线性插值
- Java数据类型占用内存最多的_java基础数据类型的内存占用
- python下载过程中最后一步执行opencv出错怎么回事_PyCharm安装opencv-python和opencv-contrib-python的一些问题和解决方法_2018-09-27...
- 高光谱图像pca降维matlab_基于 SAE-LR 的高光谱分类
- MSYS2 的安装与使用
- 树莓派docker 搭建owncloud个人云盘
- 开发笔记1 关于指针,结构体使用指针的问题
- SpringMVC中解决POST和GET请求中文乱码问题