>>>文章以流水账方式记录,各位可以简单看完后跳过我出错的部分,提高工作效率。
>>>本文Linux系统信息:
[root@localhost ~]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
[root@localhost ~]# more /proc/version
Linux version 3.10.0-123.el7.x86_64 (mockbuild@x86-017.build.eng.bos.redhat.com)
>>>刚安装好的Linux系统,很干净, 我们记录下整个过程的详细gcc源码包安装,如果只想看gcc的rpm包安装,请直接跳到第5节。
1、查看系统是否有安装过gcc编译器?
[root@localhost ~]# gcc -v
-bash: gcc: 未找到命令
2、下载gcc
在GCC网站上(http://gcc.gnu.org)或者通过网上搜索可以查找到下载资源。可供下载的文件一般有两种形式:gcc-9.2.0.tar.gz和gcc-9.2.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
3、解压缩
上传gcc-9.2.0.tar.gz(我下载的压缩文件)到/usr/src(根据自己喜好选择)下,解包:gz格式:tar zxvf gcc-9.2.0.tar.gz
bz2格式:tar jxvf gcc-9.2.0.tar.bz2
新生成的gcc-9.2.0这个目录被称为源目录,我们用{srcdir}来表示。可以使用pwd命令来查看当前路径:
[root@localhost src]# pwd
/usr/src/gcc-9.2.0
4、建立目录
编译目录我们用{objdir}来表示,是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录{srcdir]中(虽然这样做也能),但最好还是单独存放在另外一个目录中,而且不能是${srcdir}的子目录
例如,可以这样建立一个叫 /usr/local/gcc-9.2.0-build的编译目录:
[root@localhost src]# mkdir /usr/local/gcc-9.2.0-build
[root@localhost src]# cd /usr/local/gcc-9.2.0-build
[root@localhost gcc-9.2.0-build]#
以下的操作主要是在编译目录 {objdir} 下进行。
5、安装
>>>配置的目的是决定将GCC编译器安装到什么地方(我们用{destdir}来表示安装目录),支持什么语言以及指定其它一些选项等。其中,{destdir}不能与{objdir}或{srcdir}目录相同。
{srcdir}:源目录,/usr/src/gcc-9.2.0
{objdir}:编译目录,/usr/local/gcc-9.2.0-build
{destdir}:安装目录,/usr/local/gcc-9.2.0
>>>配置是通过执行${srcdir}下的configure来完成的。其命令格式为:
{srcdir}/configure --prefix=${destdir} [其它选项]
>>>例如,如果想将gcc-9.2.0安装到/usr/local/gcc-9.2.0目录下,则{destdir}就表示这个路径。在我的机器上,我是这样配置的:
[root@localhost gcc-9.2.0-build]# /usr/src/gcc-9.2.0/configure --prefix=/usr/local/gcc-9.2.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++,java
>>>我这样配置后出现错误提示:configure: error: no acceptable C compiler found in $PATH,表示我们的系统里没有安装任何C语言编译器,之所以报这样的错误是因为我安装gcc是用的源码,下载gcc对应的rpm包安装(低版本即可),提供几个获取RPM资源站点:
http://mirrors.163.com/centos/6/os/x86_64/Packages/
https://opsx.alibaba.com/mirror
http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
>>>这是我下载的RPM包地址:http://rpm.pbone.net/index.php3/stat/4/idpl/55095007/dir/redhat_el_7/com/gcc-4.8.2-16.el7.x86_64.rpm.html
>>>安装gcc-4.8.2-16.el7.x86_64.rpm:
[root@localhost gcc-9.2.0-build]# mkdir /opt/rpm
[root@localhost gcc-9.2.0-build]# cd /opt/rpm/
>>>上传gcc-4