Linux安装gcc 4.9.4编译器详解(CentOS 7 64位系统)

简介: Linux安装gcc 4.9.4编译器详解(CentOS 7 64位系统)

文章来源:http://www.softown.cn/post/141.html


参考了文章《Linux安装gcc编译器详解(CentOS 6.5 64位系统)》,这里笔者使用的是CentOS 7 64位系统,gcc-4.9.4.tar.bz2。


本人使用的是CentOS 7 64位系统,由于在系统的时候默认安装gcc编译器的版本是V4.8.5,因此想高版本则需要自行安装gcc编译器。


使用yum安装gcc


对于配备了yum的Linux发行版而言,安装gcc编译器就变得so easy。我们只需要分别执行如下命令即可:


#root账户下,安装gcc、c++编译器以及内核文件

root账户下,安装gcc、c++编译器以及内核文件

<span style="color:#000000">su root</span>

yum -y install gcc gcc-c++ kernel-devel


自行安装gcc


不过使用yum安装的gcc并非当前的最新版本,目前gcc的最新版本为4.9.4(gcc 4.8开始全面支持C 11和C++ 11的新特性)。如果我们想要安装最新版本的gcc,那么就需要自行安装gcc。


笔者初次安装gcc时,在网络上搜寻了大量的gcc安装配置教程,许多教程的内容非常之多,结果把自己搞晕了,编译安装的时候还老是出现各种错误。最后查阅官方文档才发现,自行安装新版本的gcc并不复杂,根本没有那些教程中说的那样繁琐(有些教程居然还要修改几个配置文件)。


下载gcc安装文件


在安装gcc当然要先拿到gcc的安装文件。在这里我们直接通过官方


http://gcc.gnu.org/


http://ftp.gnu.org/gnu/gcc/


下载gcc-4.9.4.tar.bz2(86 MB)。当然,你也可以下载gcc-4.9.4.tar.gz(110 MB),不过该压缩文件要大出不少。


编译前的准备工作


想要安装gcc 4.8及以上版本,你需要先安装C标准库和头文件,以及旧版本的c++编译器。如果你的计算机中没有这些,请执行以下命令(当然你也可以使用apt-get等其它方式进行安装,如果已经安装则无需再次安装):


<span style="color:#009900">#root账户下,安装C和C++的静态库</span>

<span style="color:#000000">su root</span>

yum install -y glibc-static libstdc++-static


<span style="color:#008000">#安装旧版本的gcc、c++编译器</span>

yum -y install gcc gcc-c++ kernel-devel

在这里,我们将gcc-4.9.4.tar.bz2解压到/usr/local/src目录中(当然你也可以指定其他目录),完整的tar命令为:


#root账户下,解压gcc安装文件

su root


su root

tar jxf gcc-4.9.4.tar.bz2 -C /usr/local/src

-4.9.4.tar.bz2 -C /usr/local/src

解压后gcc源程序的根目录就是/usr/local/src/gcc-4.9.4。接着,我们依次执行如下命令:


#转到gcc源程序根目录

cd /usr/local/src/gcc-4.9.4

#下载一些必备的依赖程序

./contrib/download_prerequisites


cd /usr/local/src/gcc-4.9.4

#下载一些必备的依赖程序

./contrib/download_prerequisites

安装gcc需要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动下载这些软件并解压到当前目录(文件不大,总共只有几MB,请耐心等待下载)。

编译安装gcc


接着,就可以对gcc进行编译安装了。在此之前,root账户下,我们先创建一个目录/usr/local/build/gcc-4.9.4(你也可以自行指定其他目录)用于存放编译后的程序文件。然后我们依次执行如下命令:


mkdir /usr/local/build/


mkdir /usr/local/build/gcc-4.9.4


#跳转到编译后的程序文件存放目录build

cd /usr/local/build/gcc-4.9.4

#调用gcc源程序的configure(后面的参数选项可根据需要自行修改),用于配置gcc.注意,是在build的路径下执行local/src的configure命令

/usr/local/src/gcc-4.9.4/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

#编译,充分发挥CPU四核优势,启动四线程,如果不加-j4编译gcc源程序,需要消耗比较长的时间。注意,是在build的路径下执行make。


cd /usr/local/build/gcc-4.9.4

#调用gcc源程序的configure(后面的参数选项可根据需要自行修改),用于配置gcc.注意,是在build的路径下执行local/src的configure命令

/usr/local/src/gcc-4.9.4/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

#编译,充分发挥CPU四核优势,启动四线程,如果不加-j4编译gcc源程序,需要消耗比较长的时间。注意,是在build的路径下执行make。

make -j4

#安装gcc

make install


make install

其中执行make命令这一过程耗费的时间可能非常多,笔者这里耗费了20多分钟才编译完成。执行完上述命令后,我们的gcc就已经安装成功了。


安装完成之后,指向工作路径,终端执行命令gedit ~/.bash_profile或者vim ~/.bash_profile (这个步骤感觉不是必须的!!因为我发现make install执行之后,会自动把usr/local/lib,lib64,bin文件等自动拷贝一份到usr/lib,lib64,bin文件夹。)


在~/.bash_profile配置库文件和头文件路径(这个步骤感觉不是必须的!!)


exportLD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:$LD_LIBRARY_PATH


exportC_INCLUDE_PATH=/usr/local/include/:$C_INCLUDE_PATH


exportCPLUS_INCLUDE_PATH=/usr/local/include/:$CPLUS_INCLUDE_PATH


最后


gcc -v



`gcc -print-prog-name=cc1plus` -v


`g++ -print-prog-name=cc1plus` -v



可以在终端查看gcc的版本,已经更新为V4.9.4.




与其他教程不同的是,本教程并没有对gmp、mpfr、mpc等软件分别进行解压和编译,而是直接由download_prerequisites负责下载并解压,最后和gcc一起进行编译安装,这也是官方推荐的做法(download_prerequisites还会根据实际情况决定是否启用Graphite循环优化)。


如果你的Linux无法直接联网,那么你只能打开文件download_prerequisites,获取到这些文件的下载链接,然后通过其他上网设备下载这些软件。最后把这些软件直接解压到gcc源程序目录(/usr/local/src/gcc-4.9.4)下即可。




------



gcc 编译配置参数说明:


--enable-languages        //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,Java


--disable-multilib           //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。



参考资料:CentOS7 安装GCC 4.9.3


相关文章
|
10天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
44 3
|
10天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
33 2
|
4天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
13 3
|
10天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
40 3
|
13天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
33 6
|
13天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
44 6
|
13天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
10天前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
|
6月前
|
Linux 编译器 开发工具
Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
|
IDE Linux 编译器
【Linux】gcc/g++编译器、make/Makefile自动化构建工具
目录 1.gcc/c++的概念: 2.程序编译过程详解: 2.1程序编译过程:
92 0
下一篇
无影云桌面