1.下载源码包

wget http: //ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2
  
解压: tar -jxvf gcc-4.8.0.tar.bz2
2.下载编译所需依赖库
cd gcc-4.8.0 
./contrib/download_prerequisites 
cd ..
3.建立编译输出目录
mkdir gcc-build-4.8.0
4.进入此目录,执行以下命令,生成makefile文件
cd gcc-build-4.8.0
../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
5.编译
make -j4

如果编译成功,则时间是比较长的,半个小时左右,所以如果你看它一直在输出没有立刻停下来,应该很开心!

6.安装
sudo make install
7.切换GCC到新版
确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后locate gcc-4.8|tail找一下
ls /usr/local/bin | grep gcc
添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40

8.确认当前版本已经切换为新版
gcc -v
我这里用ssh远程的,发现版本没变,断开重练下,重新生成会话后发现变成了4.8了!
看起来很顺有木有?!
心酸的弯路不知道走了多少呢!
以下是辛酸史。。
=================万恶的分割线===========================
首先是参考我们伟大的头儿的博客, http://www.jb51.cc/article/p-vhcxcnri-nz.html。
坑一、libstdc++-static
他这过程也是参考各种博客集成而来,因为我网上看大部分第一步都是: yum install glibc-static libstdc++-static -y
可其实centos的源上根本没有 libstdc++-static,第一个是有的,请安装。
坑爹的是,按照教程进行到编译make 之后,查看目录下的config.log 文件 ,搜索err,果然报 static- libstdc++的错!
这下我可认真了,死都要把 libstdc++-static装上。
首先,换centos的源,换了163的源(http://www.cnblogs.com/peterpanzsy/archive/2013/04/07/3003387.html),不行,后来跑oschina上提问,大神说epel源上应该有,于是换epel的源,仍然屁都没有!
于是去下rpm包,centos的软件包又不多,只能去下fedora的,一个家族的可以一试,epel源两者也通用的。
rpm -ivh xxx.rpm
结果出现依赖问题,于是下了这么一堆:
可是安装第一个的时候又跟系统自带的4.4.6版本的冲突,尼玛的,yum remove又因为依赖关系不可行,总不能卸载自带的gcc 4.4.7吧,后面编译新的gcc还要靠它呢,不能冲动。
今天上午就是乱搞,搞到报kernel的错,下午花了一个小时重装的系统。
还有一个原因,大神误以为他当年6.3的centos是成功yum装上了 libstdc++-static,于是我顺道重装的时候换成了centos6.3的版本,开始是6.4的其实。
最后发现6.3的源上也没有这个神奇的东西。
于是对安装 libstdc++-static绝望了。。。放弃。

坑二、三个依赖库是否要手动编译安装的问题。

进入gcc目录,执行:

./contrib/download_prerequisites

下正确版本的载那三个依赖的库。

大神说:可惜它不能自动配置编译安装,可以用我写的这个脚本来执行(假设当前是在contrib文件夹下):

cd gmd
./configure
make install
cd ../mpfr
./configure
make install
cd ../mpc
./configure
make install
可是真的要装吗?尼玛装完之后显然会出问题的!至少在我的实践里。我在网上偶然间看到有人这么说了一句,放心上了。
这么手动一装之后,编译gcc,直接报两个error停掉了,然后就出现第一步搜到的 libstdc++-static错误。
后来跳过手动装gmd mpfr mpc之后,才执行了编译成功了。。。
坑三、共享库路径的问题
因为大神那篇博客里说以上的三个共享库不在系统默认路径下。
我们可以搜一下:locate mpc|grep so
       确实有/usr/local/lib/libmpc.so
可是当我在 /etc/ld.so.conf.d下面加上/usr/local/lib路径后执行ldconfig又报错,估计下面没有找到合法的库文件吧。
于是去掉,并且没有产生什么影响。
我是真心不知道大神那个是怎么会那么复杂的。。

centos 更新gcc版本的更多相关文章

  1. 将POD规范属性与其Xcode配置中的不同构建设置相关联(例如,发布,调试)

    我正在尝试为现有的库项目创建POD规范.在Xcode项目中,构建设置为不同的构建配置定义了不同的预处理器宏例如:对于“调试”配置:对于“发布”配置:如何将这些设置映射到相应的POD规范?

  2. 在ios上使用来自框架的boost :: filesysystem路径

    我一直在使用Boost作为PeteGoodliffe脚本构建的框架已有一段时间了.效果很好.最近我遇到了一个问题,可以通过将以下代码放入另一个全新的XCode项目中的视图控制器的viewDidLoad中来重现:当路径对象被销毁时会导致EXC_BAD_ACCESS.有没有其他人遇到这个问题?

  3. ios – LLVM,GCC 4.2和Apple LLVM编译器之间的区别3.1

    LLVMGCC4.2和AppleLLVM编译器3.1之间的主要区别是什么?

  4. ios – 在/usr/lib/system/libcache.dylib中,缺少必需的架构armv6

    在试图为iphoneos编写一个虚拟程序时,Xcode4,gcc似乎没有超出初始的sysroot目录如果我把sysroot,以下作品,但感觉非常干酪,而且不可伸缩.这里发生了什么?

  5. 如何在Xcode 4.5中关闭垃圾回收,并在切换ARC时摆脱cl ang错误1?

    我刚刚重新打开了一个被设置为使用垃圾收集的项目,并且我最后在Xcode3中打开.现在在Xcode4.5中再次打开它,并希望将其现代化,我正在尝试切换ARC.但是,当构建时,会导致clangerrorerrorerrorerrorininin::::::::::::clang:error:不能同时指定’-fobjc-arc’和’-fobjc-gc-only’啊,我需要关闭我之前使用的垃圾收集.但是,

  6. Swift for OS X编译Linux?

    我对其他平台上Swift的构建过程感到困惑.Swift是否允许我在OSX上构建Linux项目,或者我是否需要在Linux上专门使用Swift来构建我计划在那里使用的任何东西?我查看了documentation,但这个主题并不是很清楚……

  7. android-studio – 在Android studio 2.2的CMake支持下使用Clang代替GCC

    我们正试图在AndroidStudio的2.2gradle中使用新的CMake支持.默认情况下,工具链设置为使用GCC并且它似乎被破坏,因此编译失败了.我怎么能告诉它与clang一起工作?

  8. 交叉编译Freetype 2.5.3 for Android

    noconfigure:error:in/cygdrive/d/Development/tmp/freetype2/builds/unix':configure:error:CcompilercannotcreateexecutablesSeeconfig.log’formoredetailsbuilds/unix/detect.mk:86:recipefortarget‘setup’Failedmake:*[setup]Error77一些config.log文件:gccversion4.8configu

  9. Android ICS编译问题

    我成功下载了Android4.0.3的源代码.但我无法在我的机器上编译它.我的机器配置是UBUNTU11.1064位,4GBRAM当我运行午餐命令时收到以下错误.JDK已经在路径中.当我运行命令java-version时,我正在关注OutPut任何人都可以帮助继续吗?解决方法如果检查脚本build/core/find-jdk-tools-jar.sh,则可以看到它首先检查名为ANDROID_JAVA_HOME的环境变量.如果将ANDROID_JAVA_HOME环境变量设置为JDK路径,则应修复此错误.

  10. android-ndk – 使用arm-linux-androideabi-gcc编译对象的问题

    背景OSX是OS>R8NDK我正在使用AndroidGCC编译器来编译下面的类…我用以下命令做…所以由于缺乏gcc知识,我发现这一点,并尝试…有人可以帮我做我做错了吗?我错过了一个链接吗?解决方法您必须告诉GCC在哪里找到Android系统文件和标题.使用:>ndk-build和一个带有BUILD_EXECUTABLE的Android.mk>或–sysrootGCC选项[1][2]

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部