视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
安装GCC(最全版)
2025-10-05 17:06:25 责编:小OO
文档
redhat linux上安装 gcc编译器【转】2009-06-19 19:57分两种情况:

Linux软件安装通用思路

在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种:

  1)一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。

  2)另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。

  当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包。只要您理解了以下的思路,这两种形式的安装包也不在话下了。

  下面,我们就分成两个部分来说明软件安装思路:

第一部分:搞定.tar.gz

  1.首先,使用tar -xzvf来解开这个包,如:

  #tar -xzvf apache_1_3_6_tar.gz

  这样就会在当前目录中创建了一个新目录(目录名与.tat.gz包的文件名类似),用来存放解压了的内容。如本例中就是apache_1.3.6

  2.进入这个目录,再用ls命令查看一下所包含的文件,如:

  #cd apache_1.3.6

  #ls

  你观察一下这个目录中包含了以下哪一个文件:configure、Makefile还是Imake。

  1)如果是configure文件,就执行:

  #./configure

  #make

  #make install

  2)如果是Makefile文件,就执行:

  #make

  #make install

  3)如果是Imake文件,就执行:

  #xmkmf

  #make

  #make install

  3.如果没有出现什么错误提示的话,就搞定了。至于软件安装到什么地方,通常会在安装时出现。否则就只能查阅一下README,或者问问我,:-)

  如果遇到错误提示,也别急,通常是十分简单的问题:

  1)没有安装C或C++编译器;

  确诊方法:执行命令gcc(C++则为g++),提示找不到这个命令。

  解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:

  #rpm -ivh gcc* (哈哈,我们用到了第二种安装方式)

  2)没有安装make工具;

  确诊方法:执行命令make,提示找不到这个命令。

  解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:

  #rpm -ivh make*

  3)没有安装autoconf工具;

  确诊方法:执行命令autoconf,提示找不到这个命令。

  解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:

  #rpm -ivh autoconf*

  4)缺少某些链接库;

  确诊方法:在make时,提示需要某些文件。

  解决方法:安装包含这个文件的包,这就需要积累了。

第二部分:搞定.rpm

  RPM是Red Hat公司随Redhat Linux推出了一个软

件包管理器,通过它能够更加轻松容易地实现软件的安装。

  1.安装软件:执行rpm -ivh rpm包名,如:

  #rpm -ivh apache-1.3.6.i386.rpm

  2.升级软件:执行rpm -Uvh rpm包名。

 

  3.反安装:执行rpm -e rpm包名。

  4.查询软件包的详细信息:执行rpm -qpi rpm包名

  5.查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名

  6.查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名

[遗留问题:redhat linux系统上有Redhat Linux Packet Manager,就是Redhat的包管理器,所以如果原来机器没装gcc编译器,装二进制码格式的编译器时,就可以直接下载相适应的rpm包来搞定。可是其它变种的linux系统怎么办呢? 有相应格式的二进制编译器软件还是说也可以使用redhat的rpm?]

---ANSWER:其他的发行版也有相应的包管理器,比如debian的包管理器叫dpkg,gentoo的好像可以merge等等。

下面,先再来一篇关于安装可执行程序的文章,说明一下,我用的机器装的是redhat9.0 strike版,所以我就在学校的ftp上下载了相应版本的is0光盘影响文件(3张盘),用虚拟光驱虚拟出三张盘来,便于后面找依赖的rpm格式的其它包的便利。基本上,我装的过程和他的一样,只是不它还多装了个binutils.

--------------------------begin

在quick linux中安装gcc的详细步骤

[ 作者:masenger 转贴自:来源不明 点击数:493 文章录入:admin ]

在quick linux中安装gcc的详细步骤

--- masenger .2004-2005

需要的东东有 :

glibc-devel-2.3.2-11.9.i386.rpm

glibc-kernheaders-2.4-8.10.i386.rpm

gcc-3.2.2-5.i386.rpm

cpp-3.2.2-5.i386.rpm

首先安装gcc ,这是因为以后要用到gcc 编译gcc包 gcc-4.1.0

1.首先要下载到软件包复制到相关目录

我用的包是包是gcc-3.4.6.9.i386.rpm 这个包一般是在安装盘的RPMS目录下

可以用命令find gcc* 找到

输入命令rpm -i gcc-3.4.6-9.i386.rpm

一般会出现一下提示

error: Failed dependencies:

cpp = 3.2.3-34 is needed by gcc-3.2.3-34

glibc-devel >= 2.2.90-12 is needed by gcc-3.2.3-34

libgcc >= 3.2.3-34 is needed by gcc-3.4.6-9

Suggested resolutions:

glibc-devel-2.3.2-95.3.i386.rpm

这就是说在安装rpm -i gcc-3.4.6-9.i386.rpm时还得需要glibc-devel-2.3.2-95.3.i386.rpm

2 输入命令rpm -i gcc-3.4.6-9.i386.rpm glibc-devel-2.3.2-95.3.i386.rpm

还会出现缺少包的信息,提示缺少什么包就安装什么包

3 最后输入以下才能成功安装

rpm -Uvh gcc-3.4.6-9.i386.rpm glibc-devel-2.3.2-95.20.i386.rpm libgcc-3.2.3-34.i386.rpm cpp-3.2.3-34.i386.rpm glibc-headers-2.3.2-95.20.i386.rpm glibc-kernheaders-2.4-8.34.i386.rpm

4.安装后输入命令gcc,则有如下返回

gcc: no input fil

es

说明gcc安装成功

到此为止,gcc就装好了

---------------end

没试过装源代码形式的就是不爽,所以按就一气呵成,再try一下装源代码格式的gcc编译器。我下载了3.4.1版本的gcc(gcc-3.4.1.tar.gz)。基本上按照下面这篇文章搞定的,虽然gnu网站上以及gcc解压后文件目录里面的INSTALL目录里面的介绍很全,但是仍觉得洋码不如咱中文看得舒服,哈哈, 。

-----------------begin

2004年4月20日最新版本的GCC编译器3.4.0发布了。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。GCC 3.4.0比以前版本更好地支持了C++标准。本文以在Redhat Linux上安装GCC3.4.0为例,介绍了GCC的安装过程。

  安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。

  系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。

  按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。

  1. 下载

  在GCC网站上(http://gcc.gnu.org/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 4.1.0。可供下载的文件一般有两种形式:gcc-4.1.0.tar.gz和gcc-4.1.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。

  2. 解压缩

  根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):

  % tar xzvf gcc-4.1.0.tar.gz

  或者

  % bzcat gcc-4.1.0.tar.bz2 | tar xvf -

  新生成的gcc-4.1.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。

  在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏

览器打开index.html阅读。

3. 建立目标目录

  目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。

  例如,可以这样建立一个叫 gcc-build 的目标目录(与源目录${srcdir}是同级目录):

  % mkdir gcc-build

  % cd gcc-build

  以下的操作主要是在目标目录 ${objdir} 下进行。

  4. 配置

  配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${srcdir}目录相同。

  配置是通过执行${srcdir}下的configure来完成的。其命令格式为(记得用你的真实路径替换${destdir}):

  % ${srcdir}/configure --prefix=${destdir} [其它选项]

  例如,如果想将GCC 3.4.0安装到/usr/local/gcc-3.4.0目录下,则${destdir}就表示这个路径。

  在我的机器上,我是这样配置的:

  % ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java

  将GCC安装在/usr/local/gcc-3.4.0目录下,支持C/C++和JAVA语言,其它选项参见GCC提供的帮助说明。

 

Step 5:

此步是满足Step 4中的依赖关系。若Step 4顺利,configure成功执行并生成Makefile,此步骤便可略过。但是在我编译的过程缺少gmp和mpfr。gcc4.5需要gmp,mpfr,mpc

4.5以前的版本需要gmp,mpfr

由于我编译过程中缺少gmp和mpfr依赖,于是我便作了如下操作:

一、安装gmp(传统过程)

下载到gmp软件包,

gmp-4.2.1.tar.bz2

然后执行:

$ tar xjvf ./ gmp-4.2.1.tar.bz2

$ cd ./ gmp-4.3.0

$ ./configure --prefix=/usr/local/gmp

$ make

$ make check

# make install

$ make distclean

二、安装mpfr(依然是传统过程)

依然下载到mpfr软件包pfr-2.4.0.tar.bz2,下载地址http://ftp.twaren.net/Unix/GNU/gnu/mpfr/

然后执行:

$ tar xjvf ./mpfr-2.4.0.tar.bz2

$ cd ./ mpfr-2.4.1

$ ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp

$ make

$ make check

# make install

$ make distclean

三、重新执行刚才没有成功的Step 4:

$ export LD_RUN_PATH=/usr/local/lib:/usr/local/mpfr/lib:/usr/local/gmp/lib

$ export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/mpfr/lib:/usr/local/gmp/lib

$ LD_RUN_PATH=/usr/local/lib:/usr/local/mpfr/lib:/usr/local/gmp/lib LD_LIBRARY_PATH=/usr/local/lib:/usr/local/mpfr/lib:/usr/local/gmp/lib

$ ../configure --prefix=/usr/gcc-4.4.0 --enable-languages=all --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --enable-libgomp

(若不想以后每次编译时都写

这么一大堆,可以参考我前一篇日志《Linux启动过程中几个重要配置文件的执行过程》将这些环境变量写在配置文件中)

成功执行后,生成Makefile。

在Make的时候还出现错误

../../gcc-4.1.1/gcc/java/jcf-io.c -o java/jcf-io.o

../../gcc-4.1.1/gcc/java/jcf-io.c:43:18: error: zlib.h: 没有这个文件或目录../../gcc-4.1.1/gcc/java/jcf-io.c: In function

make后的结果是

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

make[2]:leaving directory /usr/local/src/u/gcc

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

make[1]:leaving directory /usr/local/src/u

make :***[all] 错误2

发现时没有安装zlib-deve-1.2.1.2-1.2.i386.rpm, 这个包也是在RPMS目录下

于是执行

#rpm -ivh zlib-deve-1.2.1.2-1.2.i386.rpm

安装后在进行4步Make

在make的过程中出现一个问题就解决一个问题。

Step 6:

编译完成后,我们只用安装了:

#make install

Step 7:

清理工作:

$rm -rf *

这 就是我编译gcc-4.1.0的全过程,途中遇到好几个问题,但解决的过程太杂,反正都是一阵google,步骤都体现在了Step 4及Step 6中,为了使整个过程清晰,我便没有写出来了,因为过于specific无用。总之,遇到问题不用急,充分利用google和各大Linux论坛,问题总 会解决的。下面给一个链接,是我当时编译时,两个问题的答案都从此文得到:

Unix Linux Forums:http://fixunix.com/solaris/490396-gcc-build-fails-cannot-compute-suffix-object-files.html

编译好了之后,那么我们系统中至少将会有两个版本的GCC:一个是我们现在编译好的,还有一个是刚才用到的以前版本的GCC,那么我们如何方便地从这几个版本进行切换呢?

一种粗劣的方法是手动用ln -s创建symbolic来管理,但这样费时费力,而且容易导致toolchain混乱。

幸好有update-alternatives实用软件!它可以方便管理好同一软件的各个不同版本。

1.一般情况下,编译程序路径都是使用

/usr/bin/gcc

其实这个/usr/bin/gcc只是个符号链接,它指向了/etc/alternatives/gcc,而/etc/alternatives/gcc是指向了/usr/bin/gcc-4.3,可以用ls命令查看

z@GODSON:~$ ls -l /usr/bin/gcc

lrwxrwxrwx 1 root root 21 2009-04-28 13:35 /usr/bin/gcc -> /etc/alternatives/gcc

z@GODSON:~$ ls -l /etc/alternatives/gcc

lrwxrwxrwx 1 root root 16 2009-04-28 13:40 /etc/alternatives/gcc -> /usr/bin/gcc-4.3

2.现在我们使用update-alternatives管理我们的GCC版本:

z@GODSON:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/gcc-4.4.0/bin/gcc 50

z@GODSON:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 40

z@GODSON:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 30

这样,我们就已经把我们安装的三个GCC版本向update-alternatives注册了,接下来我

们便可以方便地管理各版本切换。

3.切换版本

切换版本到gcc-4.1.0:

z@GODSON:~$ sudo update-alternatives --config gcc

[sudo] password for z:

现有 3 个可选项,它们都提供了“gcc”<下载本文

显示全文
专题