Ubuntu 12.04 64bit 安装编译GCC 4.1.2 绝对原创
1. 下载并解压源代码:
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2
tar jxvf gcc-4.1.2.tar.bz2
2. 安装依赖库及软件:
sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo (这一步能够省去)
3. 编译gcc:
cd gcc-4.1.2
mkdir build
cd build
../configure --prefix=/opt/gcc-4.1.2 --program-suffix=-4.1 --libexecdir=/opt/gcc-4.1.2/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --enable-languages=c,c++
make bootstrap
然后是漫长的等待。。
。
4. 安装gcc:
make install
cd /opt/gcc-4.1.2/bin
ls -al
看到i686-pc-linux-gnu-gcc-4.1.2等文件就说明安装完毕啦。
5. 切换gcc 4.1.2:
我一般喜欢在主目录下建立一个bin目录,而bin目录默认就在PATH中。然后在bin目录下链接gcc-4.1来切换gcc的不同版本号。
cd ~
mkdir bin
ln -s /opt/gcc-4.1.2/bin/gcc-4.1 gcc
ln -s /opt/gcc-4.1.2/bin/g++-4.1 g++
ln -s /opt/gcc-4.1.2/bin/cpp-4.1 cpp
ln -s /opt/gcc-4.1.2/bin/gcov-4.1 gcov
ln -s gcc cc
ln -s g++ c++
如今又一次登录,输入gcc -v 或 cc -v就能够显示gcc已经变成4.1.2版本号啦。
注意编译时遇到的问题小结:
(1)makeinfo的问题
# ./configure
接着就出现错误
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[3]: *** [fastjar.info] 错误 1
make[3]:正在离开文件夹 `/home/ssm/gcc-obj/fastjar'
make[2]: *** [all] 错误 2
make[2]:正在离开文件夹 `/home/ssm/gcc-obj/fastjar'
make[1]: *** [all-fastjar] 错误 2
make[1]:正在离开文件夹 `/home/ssm/gcc-obj'
make: *** [all] 错误 2
(主要原因是GCC的版本号过高)
1:全英文的这部分说的是你的系统中缺少对应版本号的makeinfo软件。
由于gcc4.1以上的版本号须要makeinfo的版本号为4.2或更高。
所以输入命令行:
makeinfo –version 想查看makeinfo的版本号。结果得到了下面信息:
The program ‘makeinfo’ is currently not installed. You can install it by typing:
yum install texinfo
依照提示输入命令。问题得到解决。
2:本机使用的Texinfo是4.11版本号。
出现此错误的原因也在于configure文件中texinfo对该版本号不支持。能够在解压gcc4.1.1目录中的configure文件中找到
下面语句
# For an installed makeinfo, we require it to be from texinfo 4.2 or
# higher, else we use the “missing” dummy.
if ${MAKEINFO} –version \
| egrep ‘texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])’ >/dev/null 2>&1; then
:
else
MAKEINFO=”$MISSING makeinfo”
fi
;;
当中4\.[2-9]|[5-9]表示的是支持4.2-4.9之间的几个版本号,所以须要自己加入4\.[1-9][0-9]*,以支持4.11版本号。即把’texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])’编辑成’texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|4\.[1-9][0-9]*|[5-9])’后保存。编译通过。
(2)/usr/bin/ld: cannot
find crti.o: No such
file or directory
假设出现该/usr/bin/ld: cannot find crti.o: No such file or directory提示错误。说明是64位机子造成的。
解决64位的:
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
版权声明:本文博主原创文章,博客,未经同意不得转载。
Ubuntu 12.04 64bit 安装编译GCC 4.1.2 绝对原创的更多相关文章
- ubuntu 12.04 64bit 安装 teamviewer 8.0
1. 在http://www.teamviewer.com下载teamviewer_linux_x64.deb 2.sudo dpkg -i teamviewer_linux_x64.deb 3.如果 ...
- Ubuntu 12.04 64bit GCC交叉编译器制作 原创
...
- Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面
Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面.上网问了问百 ...
- Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma
1.下载angularjs 进入其官网下载:https://angularjs.org/,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angular ...
- (转)Ubuntu 12.04 LTS安装VMware Tools实现linux和window 互相复制:无法找到kernel header path的问题
Ubuntu 12.04 LTS安装VMware Tools无法找到kernel header path的问题 ubuntuvmware Ubuntu 12.04 安装 VMware Tools, ...
- 如何在ubuntu 12.04 中安装经典的 GNOME桌面
这次介绍的是如何在ubuntu 12.04 中安装经典的 GNOME桌面,默认的 Ubuntu 12.04 默认unity桌面,一些用户不喜欢 Unity 桌面,所以想找回昔日的经典Gnome桌面. ...
- Ubuntu 12.04 下安装 Eclipse
方法一:(缺点是安装时附加openjdk等大量程序并无法去除,优点是安装简单) $ sudo apt-get install eclipse 方法二:(优点是安装内容清爽,缺点是配置麻烦)1.安装JD ...
- Ubuntu 12.04上安装R语言
Ubuntu 12.04上安装R语言 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ R的安装 sudo gedit /etc/apt/sources. ...
- Ubuntu 12.04上安装HBase并运行
Ubuntu 12.04上安装HBase并运行 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.HBase的安装 在官网上下载HBase-1.1.2 ...
随机推荐
- 开源Math.NET基础数学类库使用(12)C#随机数扩展方法
原文:[原创]开源Math.NET基础数学类库使用(12)C#随机数扩展方法 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...
- 使用 gridfs-stream 存储文件遇到的一个坑。
前一段时间参读了某个coder写的用 gridfs-stream 来存储文件,感觉不错就自己用 gridfs-stream 模块写了一个文件存储服务,但是发现存储的文件总是删不掉, 我调用的是GFS的 ...
- 《TCP/IP作品详细解释2:达到》注意事项--ARP:地址解析协议
Net/3于ARP和实施密切与路由表相关联的,下图显示了我们的叙述性说明ARP使用样品. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVE9ERDkxMQ ...
- 【转】Jython简单入门
1. 用Jython调用Java类库 第一步.创建Java类 写一个简单的Java类,用Point来示例: import org.python.core.*; public class Point e ...
- jquery经常使用事件(整理)
Jquery事件 (一).事件列表. 1.blur() 当失去焦点时触发.包含鼠标点击离开和TAB键离开. 2.change() 当元素获取焦点后,值改变失去焦点事触发. 3.click() 当鼠标单 ...
- HDU 4819 Mosaic D区段树
连接:pid=4819">http://acm.hdu.edu.cn/showproblem.php?pid=4819 意:给出一个800×800下面的矩阵.每次更新一个点的值为以这个 ...
- struts.xml在Action配置具体解释
在博客上我已经基本上解释struts.xml基本配置.配置过程最为基本的是action的动态配置. 一.Action的创建方法 1)实现Action接口 2)继承ActionSupport类,覆写当中 ...
- dom 规划(html和xml)
html dom与xml dom关联: 什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了訪问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) ...
- 移动开发 Native APP、Hybrid APP和Web APP介绍
高速区分定义: Native App 以基于智能手机本地操作系统如IOS.Android.WP并使用原生程式(SDK)编写执行的须要用户安装使用的第三方应用程序; Web APP 以HTML+JS+C ...
- HDU 3788 和九度OJ 1006测试数据是不一样的
ZOJ问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...