首页 > 编程知识 正文

安装yum命令,linux怎么用gcc编译

时间:2023-05-06 07:40:42 阅读:27640 作者:1962

本文只是自己容易看到,正在修正格式的排版和内容的错误。 没有后续…

下载: http://FTP.GNU.org/GNU/gcc-4.5.1/gcc-4.5.1.tar.bz2

阅: http://FTP.GNU.org/GNU/gcc/gcc-4.5.1 /

changes :浏览http://gcc.GNU.org/gcc-4.5/changes.htm

GCC可用于编译C/C、FORTRAN、JAVA、OBJC、ADA等语言的程序,可以根据需要选择支持的语言进行安装。 本文以在Redhat Linux上安装GCC4.6.0为例,介绍了在Linux上安装GCC的过程。 由于必须在项目开发过程中使用此过程,因此没有使用最新的GCC版本。

在安装之前,系统中必须存在编译器(如cc或gcc )且可用,或者必须使用环境变量cc指定系统上的编译器。 如果系统中没有编译器,则无法安装源代码格式的GCC 4.6.0。 在这种情况下,您可以在internet上找到并安装适用于您的系统的二进制格式的GCC软件包,例如RPM。 本文介绍了以源代码格式提供的GCC软件包的安装过程。 软件包本身及其安装说明也适用于其他Linux和Unix系统。

系统上的原始GCC编译器可能会将命令文件(如GCC )、库文件和头文件等分别存储在系统上的不同目录中。

目前,GCC建议将GCC的版本安装在其他目录中。 这样做的好处是,可以在将来不需要它时轻松删除整个目录(因为GCC没有uninstall功能)。 缺点是,安装完成后,需要进行配置工作以使编译器发挥作用。 本文采用这种方式安装GCC 4.1.2,安装完成后,仍然可以使用原始的低版本GCC编译器,即同时存在于一个系统上,多个版本的GCC编译器。

根据本文中提供的步骤和配置选项,您可以在系统上安装新版本的可运行的GCC编译器,而无需以前安装过GCC。

下载可在GCC网站http://gcc.gnu.org (或通过互联网搜索找到下载资源。 目前GCC的最新版本是gcc 11.2,但我想安装的是4.6.0。 可以下载的文件一般有两种格式。 是gcc-4.6.0.tar.gz和gcc-4.6.0.tar.bz2。 只是压缩格式不同,内容完全一致。 下载其中一个就可以了。

将gcc-4.6.0.tar.bz2 (下载的压缩文件)解压缩为/usr/local/src,然后根据压缩格式使用以下方法之一进行解压缩:

tar zxvf gcc-4.6.0.tar.gz或

bzcat gcc-4.6.0.tar.bz2 | tar xvf -新生成的名为gcc-4.6.0的目录称为源目录,以${srcdir}表示。 今后${srcdir}出现的地方,应该将其替换为实际路径。 可以使用pwd命令显示当前路径。

${srcdir}/INSTALL目录提供了详细的GCC安装说明,您可以在浏览器中打开index.html进行阅读。

在其中创建目标目录的目标目录${objdir}是用于存储编译结果的位置。 GCC建议不要将编译的文件放在源目录${srcdir}中。 建议存储在不同的目录中,而不是${srcdir}的子目录中。

例如,可以创建名为/usr/local/gcc-4.6.0的目标目录。

mkdir/usr/local/gcc-4.6.0 CD gcc-4.6.0以下操作主要在目标目录${objdir}中进行。 (否则会出错。 稍后说明)

配置的目的是确定GCC编译器安装在何处${destdir}、支持的语言以及指定其他选项等。 其中${destdir}不能与${objdir}或${srcdir}位于相同的目录中。 (但是,其原文是一样的。 看看下面设定了什么。

配置是通过运行${srcdir}下的配置完成的。 命令的格式如下。 请将${destdir}替换为实际路径。

$ { srcdir }/configure-- prefix=$ { destdir } [其他选项]例如,在/usr/local/gcc-4.6.0目录中输入GCC 4.6.0 其实我在这条路径上已经有了gcc。 我想要的是g )

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

./gcc-4.6.0/configure-- prefix=/usr/kfd zxc---enable-threads=POSIX-- disable-checking---enabll

编译这里需要su,需要时间。 如果你读另一篇文章,你会说大约一个半小时。

make安装在运行以下命令时进行编译

库文件等拷贝到${destdir}目录中(根据你设定的路径,可能需要管理员的权限):

make install

至此,GCC 4.6.0安装过程就完成了。

其它设置

GCC 4.6.0的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在kfdzxc目录下、库文件在 lib下、头文件在include下等。由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。

gcc、g++、gcj的设置:

要想使用GCC 4.6.0的gcc等命令,简单的方法就是把它的路径${destdir}/kfdzxc放在环境变量PATH中。我不用这种方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。

首先,查看原来的gcc所在的路径:

which gcc

在我的系统上,上述命令显示:/usr/kfdzxc/gcc。因此,原来的gcc命令在/usr/kfdzxc目录下。我们可以把GCC 4.1.2中的gcc、g++、gcj等命令在/usr/kfdzxc目录下分别做一个符号连接:

cd /usr/kfdzxcln -s ${destdir}/kfdzxc/gcc gcc460ln -s ${destdir}/kfdzxc/g++ g++460ln -s ${destdir}/kfdzxc/gcj gcj460

这样,就可以分别使用gcc460、g++460、gcj460来调用GCC 4.6.0的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。

库路径的设置:

将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,例如,如果GCC 4.6.0 安装在/usr/local/gcc-4.6.0目录下,在RH Linux下可以直接在命令行上执行

export LD_LIBRARY_PATH=/usr/local/gcc-4.6.0/lib

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

LD_LIBRARY_PATH=/usr/local/gcc-4.6.0/lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH

重启系统设置生效,或者执行命令

source $HOME/.bash_profile

用新的编译命令(gcc460、g++460等)编译你以前的C、C++程序,检验新安装的GCC编译器是否能正常工作。

完成了Linux安装GCC,之后你就能轻松地编辑了。

在RHLinux下安装gcc-4.6.0方法比较简单,但是安装过程中有些环节是需要注意的,否则,可能会导致安装不成功,或者安装报错。具体安装过程如下:

首先,下载并解压缩gcc的RPM包至源目录(如/opt/gcc-4.6.0)

1、解压缩RPM包:

[root@linuxopt] tar xjvf gcc-4.6.0.tar.bz2 (解压后生成源目录/opt/gcc-4.6.0)

2、创建安装目标目录:

[root@linux opt] mkdir /usr/local/gcc-4.6.0/

3、进入安装目标目录:

[root@linux opt] cd /usr/local/gcc-4.6.0/ (这一步很重要,配置安装文件时,需要在目标目录下执行configure命令)[root@linux opt] pwd/usr/local/gcc-4.6.0

4、配置安装文件:

[root@linux gcc-4.6.0] /opt/gcc-4.6.0/configure --prefix=/usr/local/gcc-4.6.0/

这一步非常重要,需要在安装的目标目录下,执行源目录 /opt/gcc-4.6.0/中的configure命令,配置将gcc安装到目标目录/usr/local/gcc-4.6.0/

creating cache ./config.cachechecking host system type... i686-pc-linux-gnu

5、编译安装文件:

[root@linux gcc-4.6.0] pwd/usr/local/gcc-4.6.0[root@linux gcc-4.6.0] make (在目标目录下执行编译)

6、安装gcc:

[root@linux gcc-4.6.0] pwd/usr/local/gcc-4.6.0[root@linux gcc-4.6.0] make install (在目标目录下执行安装)

如果安装过程中步骤和命令没有错误,你肯定能安装成功。

下面是另一个版本的gcc安装

进入到挂载的目录下,先

cp GCC4.2.bz2 /azuocd /azuotar -xvf GCC 4.2.bz2

得到gcc-4.2,cd gcc-4.2,在/usr目录下建立一个文件夹就是现在要存放新的gcc的目录,

mkdir /usr/gcc4./configure –prefix=/usr/gcc4

回车,就会有配置信息,只要不报错就可以了,

make,这个过程很久,因为我没有设置一些具体的选项,因此,所有的组件几乎都要编译一遍,我的电脑cpu:AMD 3200+X2 ,1.5g内存,大概花费一个半小时。

到这个时候为止,/usr/gcc4下还没有任何东西,编译过程都是发生在源文件夹,让我们再来一个动作,所有的要用到的东西都会配置到目标文件夹下,

make install

这个过程也不短,等着就是了。

一切都已经弄好了之后就是使用最新的gcc了,可以看到,在/usr/gcc4/kfdzxc下有gcc,g++,等一些东西,都是可以用的,写两个程序(原文的include这行有错,请注意,下面 C++ 的也一样):

aa.c:

#include<stdio.h>int main(void){ printf("hello"); return 1;} gcc -o aa aa.c

执行 ./aa

上面的这个是c的,下面这个就是c++的了:

a.cpp:

#include<iostream>using namespace std;int main(void){ cout << "Ok!" << endl; return 1;} g++ -o a a.cpp

执行就是了./a

一切ok了,就可以让最新的gcc工具取代原来的工具了。

看看原来的gcc是什么版本的,我们好卸载它:

我的gcc在/usr/kfdzxc下面有,在/usr/lib/ccache这个目录下也有,分别在这两个下面都要建立一个链接:

[root@BTazuo kfdzxc] ln -s /usr/gcc4/kfdzxc/g++ g++[root@BTazuo kfdzxc] g++g++: 没有输入文件

可见g++已经装好了,可以使用了。

然后是gcc:

[root@BTazuo kfdzxc] ln -s /usr/gcc4/kfdzxc/gcc gcc[root@BTazuo kfdzxc] gccbash: /usr/lib/ccache/gcc: 没有那个文件或目录[root@BTazuo kfdzxc] ./gccgcc: 没有输入文件

可见还要给另外一个目录建立一个gcc的链接:

[root@BTazuo lib] ln -s /usr/gcc4/kfdzxc/gcc /usr/lib/ccache/gcc[root@BTazuo lib] gccgcc: 没有输入文件

到此为止,gcc和g++都已经建立好了,可以用了,最后把原来的包和解压文件都可以删除了,以节省硬盘空间!

以下是一些别的参考资料

首先用configure命令配置程序的安装环境和参数,生成Makefile文件,整个过程如下:

注:configure命令的参数含义说明

-host 配置安装环境-target 配置成littleEndian模式-with-gnu-as 加载汇编器-with-gnu-ld 加载链接器-prefix 设置安装目录

转自:https://www.cnblogs.com/chuncn/archive/2010/10/15/1851853.html

此文仍在修改中,未完待续
此为2021年9月13日08:43:26版本

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。