分享一下我老师大神的人工智能教程!零基础,通俗易懂!/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
今天又搞了一天,升级成功的那一刻,我都快感动得哭了。。。什么都不说了,都是泪。。。
其实升级不难,真的一点都不难,重点是被自己人的文档坑了。。
系统centos 6.3 32位 i386 自带gcc 4.4.6 升级到gcc 4.8
参考:/zhangtingkuo/archive//04/06/3002982.html
/magicyang87/article/details/7972169
1.下载源码包
wget http:
///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 install7.切换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了!看起来很顺有木有?! 心酸的弯路不知道走了多少呢! 以下是辛酸史。。 =================万恶的分割线=========================== 首先是参考我们伟大的头儿的博客, /yanxiangtianji/article/details/8365630。坑一、libstdc++-static他这过程也是参考各种博客集成而来,因为我网上看大部分第一步都是: yum install glibc-static libstdc++-static -y 可其实centos的源上根本没有 libstdc++-static,第一个是有的,请安装。 坑爹的是,按照教程进行到编译make 之后,查看目录下的config.log 文件 ,搜索err,果然报 static- libstdc++的错! 这下我可认真了,死都要把 libstdc++-static装上。 首先,换centos的源,换了163的源(/peterpanzsy/archive//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又报错,估计下面没有找到合法的库文件吧。 于是去掉,并且没有产生什么影响。 我是真心不知道大神那个是怎么会那么复杂的。。
<script type="text/javascript" src="/pagead/show_ads.js"></script>