使用源码安装gcc 9.2.0

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

 

1 下载

在GCC网站上(http://gcc.gnu.org)下载资源。可供下载的文件一般有两种形式:gcc-9.2.0.tar.gz和gcc-9.2.0.tar.bz2

2. 解压缩

将下载好的gcc-9.1.0.tar.bz2或gcc-9.1.0.tar.gz选择下面相应的一种方式解包:

 tar zxvf gcc-9.2.0.tar.gz

或者

 tar -jxvf  gcc-9.2.0.tar.bz2 

新生成的gcc-9.2.0这个目录被称为源目录,用{srcdir}表示它。以后在出现{srcdir}的地方,应该用真实的路径来替换它。

在{srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。

安装gcc之前,需要安装几个依赖包。在gcc安装文件中,有个脚本可以帮我们自动下载、配置、安装依赖库

        $ cd  {srcdir}                                      //进入解压后的目录

        $ ./contrib/download_prerequisites                     //执行脚本

 

3. 建立目标目录

目标目录用{objdir}表示,是用来存放编译后生成的文件的。GCC建议编译后的文件不要放在源目录{srcdir]中最好单独存放在另外一个目录中。

例如,可以这样建立一个叫 /usr/local/gcc-9.2.0的目标目录并进入:

 mkdir /usr/local/gcc-9.2.0

cd   /usr/local/gcc-9.2.0            //这一步是为了让生成的文件都到目标目录中

4. 配置

配置是通过执行{srcdir}下的configure来完成的。${destdir}代表你想要安装的目录:

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

例如,如果想将GCC 9.2.0安装到/opt/gcc-9.2.0目录下在我的机器上,我是这样配置的:

{srcdir}/configure --prefix=/opt/gcc-9.2.0  --disable-checking  --enable-languages=c,c++  --disable-multilib

将GCC安装在/opt/gcc-9.2.0目录下,不检测,支持C/C++语言,不编译32位操作系统

5. 编译

% make  -j4    

j4代表最多同时能允许4个编译命令执行,数字可根据具体的电脑cpu核心数进行选择以提高编译速度

6. 安装

% make install

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

7. 终端命令设置

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

1.打开    /etc/profile   在其中的最后添加代码    例如     export PATH="{destdir}/bin:$PATH"(添加库文件类似)

2.在terminal中使用命令    source /etc/profile  使修改生效

3.使用 gcc  -v命令查看一下版本吧(我用yum将其余预版本的gcc都删了)

 

其他方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。

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

% which gcc

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

% cd /usr/bin

% ln -s {destdir}/bin/gcc gcc920

% ln -s {destdir}/bin/g++ g++920

 

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

(终于搞定了   fuckkkkkkk!!)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章