Gcc 4.4.1 编译源码安装

本文提供了一份详细的GCC 4.4.1安装教程,涵盖了从下载到配置、编译、安装及环境变量设置的全过程,并解决了安装过程中可能出现的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

安装环境:Ubuntu10.04,Gcc-4.4.3

安装gcc-4.4.1

1.       网站http://gcc.gnu.org上下载文件gcc-4.4.1.tar.bz2,假设下载目录为/home/wkx。

2.       在当前目录(/home/wkx)解压缩,在命令行tar -jxvf gcc-4.4.1.tar.bz2。

3.       对源文件进行配置,

mkdir gcc-build       // 用于安装的临时文件,安装完毕后可以删除

mkdir gcc               // gcc的安装目录

cd gcc-build

../gcc-4.4.1/configure –prefix=/home/wkx/gcc –enable-threads –disable-checking –enable-long-long –with-system-zlib –enable-language=c,c++,java

这一步会出现一个错误,configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.0+。

原因是:GCC now requires the GMP, MPFR and MPC packages. As these packages may not be included in your host distribution, they will be built with GCC.

4.       网上下载MP 4.1+ and MPFR 2.3.2+。

Unpack each package into the GCC source directory and rename the resulting directories so the GCC build procedures will automatically use them: (把gmp和mpfr解压之后的文件夹改名为gmp和mpfr,然后移动到gcc源码文件夹里面就可以了)

cd ../gcc-4.4.1
tar -jxf ../mpfr-3.1.0.tar.bz2
mv -v mpfr-3.1.0 mpfr
tar -jxf ../gmp-5.0.2.tar.bz2
mv -v gmp-5.0.2 gmp
tar -zxf ../mpc-0.9.tar.gz
mv -v mpc-0.9 mpc

5.       重新对源文件进行配置:

cd ../gcc-build

../gcc-4.4.1/configure –prefix=/home/wkx/gcc –enable-threads –disable-checking –enable-long-long –with-system-zlib –enable-language=c,c++,java

直到出现:MakeFile证明成功

configure: creating ./config.status

config.status: creating Makefile

6.       编译Gcc

make

安装过程中遇到错误:

              ../../gcc4.4.1/gcc/java/jcf-io.c -o java/jcf-io.o

../../gcc4.4.1/gcc/java/jcf-io.c:39:18: 错误: zlib.h:没有那个文件或目录

../../gcc4.4.1/gcc/java/jcf-io.c: 在函数‘read_zip_member’中:

../../gcc4.4.1/gcc/java/jcf-io.c:198: 错误: ‘Z_NO_COMPRESSION’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:198: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其

../../gcc4.4.1/gcc/java/jcf-io.c:198: 错误: 所在的函数内也只报告一次。)

../../gcc4.4.1/gcc/java/jcf-io.c:211: 错误: ‘z_stream’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:211: 错误: expected ‘;’ before ‘d_stream’

../../gcc4.4.1/gcc/java/jcf-io.c:212: 错误: ‘d_stream’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:212: 错误: ‘alloc_func’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:212: 错误: expected ‘;’ before numeric constant

../../gcc4.4.1/gcc/java/jcf-io.c:213: 错误: ‘free_func’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:213: 错误: expected ‘;’ before numeric constant

../../gcc4.4.1/gcc/java/jcf-io.c:214: 错误: ‘voidpf’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:214: 错误: expected ‘;’ before numeric constant

../../gcc4.4.1/gcc/java/jcf-io.c:230: 警告: 隐式声明函数‘inflateInit2’

../../gcc4.4.1/gcc/java/jcf-io.c:230: 错误: ‘MAX_WBITS’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:231: 警告: 隐式声明函数‘inflate’

../../gcc4.4.1/gcc/java/jcf-io.c:231: 错误: ‘Z_NO_FLUSH’未声明(在此函数内第一次使用)

../../gcc4.4.1/gcc/java/jcf-io.c:232: 警告: 隐式声明函数‘inflateEnd’

make[3]: *** [java/jcf-io.o] 错误 1

make[3]:正在离开目录 `/home/wkx/gcc-bulit/gcc'

make[2]: *** [all-stage2-gcc] 错误 2

make[2]:正在离开目录 `/home/wkx/gcc-bulit'

make[1]: *** [stage2-bubble] 错误 2

make[1]:正在离开目录 `/home/wkx/gcc-bulit'

make: *** [all] 错误 2

原因很简单是因为--with-system-zlib,当然要你装好zlib ,特别是 zlib 的开发包了,一般是 zlib-devel,解决方法:去掉该选项即可。

7.       重新对源文件进行配置:

cd ../gcc-build

../gcc-4.4.1/configure –prefix=/home/wkx/gcc –enable-threads –disable-checking –enable-long-long –enable-language=c,c++,java

直到出现:MakeFile证明成功

configure: creating ./config.status

config.status: creating Makefile

8.       重新进行编译gcc。

直接make,一定会出错

make[2]: 正在进入目录 `/home/wkx/gcc-bulit'

make[3]: 正在进入目录 `/home/wkx/gcc-bulit'

rm -f stage_current

make[3]:正在离开目录 `/home/wkx/gcc-bulit'

Comparing stages 2 and 3

warning: ./cc1plus-checksum.o differs

warning: ./cc1obj-checksum.o differs

warning: ./cc1-checksum.o differs

Bootstrap comparison failure!

./varasm.o differs

./crtendS.o differs

./i386.o differs

./crtbeginS.o differs

./gcc.o differs

make[2]: *** [compare] 错误 1

make[2]:正在离开目录 `/home/wkx/gcc-bulit'

make[1]: *** [stage3-bubble] 错误 2

make[1]:正在离开目录 `/home/wkx/gcc-bulit'

make: *** [all] 错误 2

解决方法:

make distclean

../gcc-4.4.1/configure –prefix=/home/wkx/gcc –enable-threads –disable-checking –enable-long-long –enable-language=c,c++,java

make

只要不提示有错误,就是安装成功。

9.       安装Gcc

直接输入命令:make install

make[4]: Leaving directory `/home/wkx /gcc-built/i686-pc-linux-gnu/libgomp'

make[3]: Leaving directory `/home/wkx /gcc-built/i686-pc-linux-gnu/libgomp'

make[2]: Leaving directory `/home/wkx /gcc-built/i686-pc-linux-gnu/libgomp'

make[1]: Leaving directory `/home/wkx /gcc-built'

安装成功。

10.   检测gcc

在命令行输入wkx@wkx-desktop:~/myfile/gcc-4.4.1/bin$ ./gcc -v,出现了如下面所示的结果,证明gcc可以正常工作。

# 使用内建 specs。

# 目标:i686-pc-linux-gnu

# 配置为:../gcc4.4.1/configure --prefix=/home/wkx/myfile/gcc-4.4.1 --enable-threads --disable-checking --enable-long-long --enable-language=c,c++,java

# 线程模型:posix

# gcc 版本 4.4.1 (GCC)

可以写个HelloWorld小程序验证一下。

11.   设置环境变量(本部分复制过来,没有验证)

Ø         先查看gcc所在的路径

Which gcc

Ø         再执行以下命令:

Cd  /usr/bin

Ln –s $(安装路径)/bin/gcc gcc4

Ln –s $(安装路径)/bin/g++ g++4

Ln –s $(安装路径)/bin/gcj gcj4

Ø         库路径的设置

最好添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了,在文件$HOME/.bash_profile中添加下面两句:
LD_LIBRARY_PATH=(安装路径)/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

建立好连接以后,可以通过以下几个命令查看是否建立成功:

Ls *4

Ls –l *4

Gcc4

 

 

小生初来研究Gcc,如果有什么问题大家一起讨论吐舌头

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值