记录一次编译gcc的过程

您所在的位置:网站首页 网络调试一般要多久 记录一次编译gcc的过程

记录一次编译gcc的过程

2024-07-16 06:51| 来源: 网络整理| 查看: 265

记录一次编译gcc的过程 准备

系统:Ubuntu 20.04.1

软件包:gcc-10.2.0.tar.gz、gmp-6.2.1.tar.zst、m4-1.4.18.tar.gz(之后换成了m4-1.4.7.tar.gz)、mpc-1.2.1.tar.gz、mpfr-4.1.0.zip 在这里插入图片描述 使用到的命令

#解压 tar -zvxf ***.tar.gz tar -I zstd -xvf ***.tar.zst unzip ***.zip #安装 ./configure make sudo make install #安装其他软件 sudo apt install 开始安装

根据官方的说明,gcc依赖m4、gmp、mpc、mpfr,所以在安装gcc之前要依次安装m4、gmp、mpc、mpfr。为什么要依次安装这些包?因为这些软件从后向前有依赖关系,直接安装gcc会有如下的提示。 在这里插入图片描述 在安装gcc时,运行命令./configure --help | more可以看到,在安装gcc时,系统会在PATH中检索这些依赖包。 在这里插入图片描述 官网对这些包都有版本要求,传送门,这里列举了安装过程中可能用到的包,以及版本要求。

在使用命令tar -I zstd -xvf gmp-6.2.1.tar.zst解压gmp-6.2.1.tar.zst时,没能成功解压,原因是没有安装zstd。

成功解压之后进入目录,运行./config,系统提示没有安装m4,有的Ubuntu安装的有m4,而有的Ubuntu没有安装。 在这里插入图片描述 在安装m4的时候,又出错了。 在这里插入图片描述 看了网上的方法,是由于使用的版本太高了,于是就换成了比较贴近gcc要求的版本m4-1.4.7.tar.gz。具体是什么引起的错误,先挖个坑,以后再研究。

在安装之前使用./configure --help | more命令可以看到这些包的默认安装路径是/usr/local。 在这里插入图片描述 在使用make install时可以通过--prefix = target_path,指定想要安装的路径。

四个依赖包安装完成之后会在/usr/local中看到新添加的动态库以及头文件。 在这里插入图片描述 官网建议新建一个空白文件夹用来编译gcc,于是我新建了一个gcc-build文件夹。当运行configure时,系统提示如下 在这里插入图片描述 我选择了只编译一个64位的编译器,configure --disable=multilib。

在进行下一步时,系统提示

configure: error: C++ preprocessor "/lib/cpp" fails sanity check

网上说是缺少了相关的C++库,解决方法如下:

#Ubuntu解决方法 apt install build-essential apt install g++ # centos解决方法 yum install glibc-headers yum install gcc-c++

然后就可以进行下一步了。执行make的时间很长,我等了将近3个小时。

由于在安装时我使用的是默认安装路径,导致系统自带的gcc被覆盖。gcc --version显示的是最新版本。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3