编译gcc4.7.3 其他版本的应该也可以
来源:互联网 发布:手机会员软件 编辑:程序博客网 时间:2024/05/16 05:09
编译它真麻烦啊。。耗费了我一下午。。
我是ubuntu10.10环境的。内置的gcc版本很老了,好像是4.2吧。源里又没有高版本的,于是自己编译了。
准备
下载gcc:点我打开 //源,找个最快的。下你想要的版本
下载编译要用的库:m4-1.4.16,gmp-4.3.2,mpfr-2.4.2和mpc-0.8.1 版本应该要以上吧,我是下这3个的
地址:m4:点击打开链接 另外3个:点击打开链接
到最后make check时(只有gcc)还需要安装一个(听说不用check也行,就可以不用装了) autogen,可以直接在源里搜到的。
编译(摘自http://blog.csdn.net/zyysql/article/details/6036145和http://marxistprogrammer.blog.163.com/blog/static/47198981201192922811592)
- 先编译m4(不编译它GMP编译不了)
tar zxvf m4-1.4.1.tar.gzcd m4-1.4.1./configuremakemake check #强烈建议检查,确保正确make install #需要root,建议在root中安装
- 后编译GMP(由于MPFR和MPC都依赖于GMP包,所以首先安装GMP)
tar jxvf gmp-4.3.2.tar.bz2cd gmp-4.3.2./configuremakemake checkmake install
- 再就是MPFR
tar jxvf mpfr-2.4.2.tar.bz2cd mpfr-2.4.2./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/libmakemake checkmake install
- 安装MPC
tar zxvf mpc-0.8.1.tar.gzcd mpc-0.8.1./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/libmakeldconfig -v#(出现:error while loading shared libraries: libmpfr.so.1: cannot open shared objec,可以自己去man ldd 和ldconfig)make checkmake install
到这里就可以编译gcc了(前面几个库的默认位置是/usr/local/include和/usr/local/lib,GCC编译时可能会找不到这三个库,需要确认库位置是否在环境变量LD_LIBRARY_PATH中)
- 查看环境变量内容可以用命令
echo $LD_LIBRARY_PATH - 设置该环境变量命令如下:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
现在开始安装GCC
tar xvf gcc-4.5.1.tar.gzcd gcc-4.7.3./configure --prefix=/usr/local/gcc-4.7.3 --enable-languages=c,c++#gcc包含的编译器很多,我只想要c跟c++编译器。如果提示缺少什么包,从源里安装就行了,我不缺。#之所以安装到/usr/local/gcc-4.7.3,而不是默认的/usr/local下,是因为gcc没有提供make uninstall的功能,放在一个目录下方便日后删除。make #(这个过程较长,据说是编译了三次,第一次是用现有的老版本编译4.7的源代码得到老版本编译的 4.7,然后再用这个老版本编译的4.7编译#4.7的源代码得到4.7编译的4.7编译的4.7,然后再用这个老版本编译的4.7编译的4.7编译4.7的源代码得到最终的老版本编译的4.7编译的4.7编#译的4.7;ok,再用最后得到的这个4.7编译标准库)make check#(想check的就装上面提到的吧,不check也能装的)sudo make install
经过较长时间(我等了近四个小时,机子差,加上我又在浏览等行为)等待就可以编译完成。
设置环境变量的话,在~/.profile最后添加一行
PATH="/usr/local/gcc-4.7.3/bin:$PATH"
用g++ -v看看是不是4.7.3了?恭喜你!
- 编译gcc4.7.3 其他版本的应该也可以
- 静态编译gcc4.6.3应该知道的网站
- 借助SQLServer 和第三方的插件可以把任意数据库导入到SQLServer,到其他数据库也应该可以
- Ubuntu 12.04安装QQ2012(12.10也可以,试过了的,其他版本没事过)
- myclipse2014(其他版本也可以)安装插件的几种方法(详细)
- 用VS2005(其他版本也可以)调试dump文件
- C++ 程序 附加 进程调试 方法 本文基于VS2010为例, 其他版本的编译器也可以
- IE9.0 设置无法保存解决方法 其他版本也可以这么做
- fedora的软件更新源(fedora16其他版本也适用)
- fedora的软件更新源(fedora16其他版本也适用)
- 关于在一个页面去finish其他的页面,也可以调用其他页面的方法
- gcc4编译x86版的qtopia2.2
- Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)
- Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)
- Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)
- Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)
- Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)
- Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)
- IntelliJ IDEA 常用快捷键
- 经典makefile例子
- jquery ui(六)拖动排序 sortable
- 西安客运网站
- http://blog.chinaunix.net/uid-25835268-id-3055356.html--makefile
- 编译gcc4.7.3 其他版本的应该也可以
- jquery插件(一):JQCloud
- User Story用户情景与用例规约
- ognl.InappropriateExpressionException: Inappropriate OGNL expression: 1
- 查找项目下的函数定义和使用
- 上班族必读:“五险一金”详解!!
- Qt编写端口扫描工具
- PSF 点扩散函数
- ListView的Item不能点击的解决方法