热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu13.04下编译GCC-4.8.2源码并安装成功

#在Ubuntu-x64bit下编译GCC4.8.2#安装必要的软件包sudoapt-getupdatesudoapt-getinstallgccsudoapt-getinstallg++sudoapt-getinstallgawksudoapt-getinstllm4sudoapt-getinstallgcc-multilibsudoapt-ge

# 在Ubuntu-x64bit 下编译GCC 4.8.2

# 安装必要的软件包
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gawk
sudo apt-get instll m4
sudo apt-get install gcc-multilib
sudo apt-get install binutils
sudo apt-get install lzip

# 新建GCC目录
cd ~
mkdir GCC && cd GCC

# 下载GCC-4.8.2源码: http://gcc.gnu.org/mirrors.html
# 下载三个必须的库gmp、mpfr、mpc;根据依赖关系:mpfr依赖于gmp, mpc依赖于gmp和mpfr
# 先安装gmp,再安装mpfr,然后安装mpc,最后安装gcc
# gmp : https://gmplib.org/
# mpfr : http://www.mpfr.org/mpfr-current/#download
# mpc : http://www.multiprecision.org/index.php?prog=mpc&page=download
#
# gmp
wget https://gmplib.org/download/gmp/gmp-5.1.3.tar.lz
# mpfr
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.xz
# mpc
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz
# gcc-4.8.2
wget http://mirrors.webhostinggeeks.com/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2

# 解压 gmp
lzip -d gmp-5.1.3.tar.lz
tar -xvf gmp-5.1.3.tar -C gmp
# 解压mpfr
tar -Jxvf mpfr-3.1.2.tar.xz -C mpfr
# 解压mpc
tar -zxvf mpc-1.0.2.tar.gz -C mpc
# 解压GCC
tar -jxvf gcc-4.8.2.tar.bz2 -C gcc

###############
# 开始编译    #
###############

# 编译gmp库,安装到/usr/gcc_4_8目录,以x86_64-linux-gnu内核
cd gmp
mkdir build && cd build
../configure --prefix=/usr/gcc_4_8 --build=x86_64-linux-gnu
make
sudo make install

# 编译mpfr库,安装到/usr/gcc_4_8目录,以x86_64-linux-gnu内核,以gmp库
cd ..
cd ..
cd mpfr
mkdir build && cd build
../configure --build=x86_64-linux-gnu --prefix=/usr/gcc_4_8 --with-gmp=/usr/gcc_4_8
make
sudo make install

# 编译mpc库,依赖gmp、mpfr,内核。。。
cd ..
cd ..
cd mpc
mkdir build && cd build
../configure --build=x86_64-linux-gnu --prefix=/usr/gcc_4_8 --with-gmp=/usr/gcc_4_8 --with-mpfr=/usr/gcc_4_8
make
sudo make install

#####################
#  准备编译GCC源码  #
#####################

# 接下来开始编译C/C++和Fortran编译器
cd ..
cd ..
mkdir build && cd build
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
../gcc/configure --build=x86_64-linux-gnu --prefix=/usr/gcc_4_8 --with-gmp=/usr/gcc_4_8 --with-mpfr=/usr/gcc_4_8 --with-mpc=/usr/gcc_4_8 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --program-suffix=-4.8
make
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
sudo make install

##########################################
#  至此,Gcc已经安装完成,下面配置系统路径#
##########################################

# 下面命令可将gcc 4.8添加到系统路径,或者直接编辑home目录下.bashrc文件,在最后添加下面一行
export PATH=/usr/gcc_4_8/bin:$PATH

# 调用编译器的简单方法
g++-4.8 test.cpp -o test

# 可将源码删除
# rm -rf gmp mpfr mpc gcc

# 其他资料:
在配置之前先讲解一下,要用到的配置是什么意思:
--target=  生成的目标系统  #在编译主机用的不需要配置这个
--build=    编译的机器的类型  #这个可以说是必须要修改的
--host=    主机的类型          #这个参数不需要用到
--prefix=  安装的目录          #这个一定要配置
--enable-languages=  这个是配置生成的程序,支持什么语言的编译器  #这个要配置,防止生成的文件成多。参数过多造成编译不通过
--disable-werror        这个是关闭提醒  #不一定需要。
--enable-ld=[yes,no]    这个是联合binutils编译的时候用到的。 #如果只编译这个GCC.这个可以省略
--enable-gold=[yes,no]    这个是联合binutils编译的时候用到的。 #只编译GCC 不需要用到这个。
--program-suffix=      这个是程序的后序          #为了区别与系统自带的gcc建议加上这个
--program-transform-name=  这个是用来生成个性化的 gcc 命名规则。#如果使用了这个,可以不用上面的--program-suffix 这个选项
--disable-multilib        关闭使用跨平台的库          #建设使用这个选项

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
author-avatar
残伤贱爱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有