1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】

【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】

时间:2018-12-22 07:52:47

相关推荐

【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】

文章目录

Linux-centos7.9系统GNU编译器套件(gcc/g++/gfortran)离线编译安装一、★GNU编译器套件定义二、★GNU-GCC编译环境说明三、★GNU-GCC编译安装3.1 依赖软件包安装3.2 gcc-7.5版本编译安装 四、★GNU-GCC环境导入4.1 个人主机环境4.2 HPC集群环境4.3 gcc版本验证 五、★GNU-GCC使用情景5.1 仅有GNU编译器套件5.2 GNU编译套件和INTEL编译器共存 六、★GNU-GCC支持C++特性七、★最后

Linux-centos7.9系统GNU编译器套件(gcc/g++/gfortran)离线编译安装

本篇文章主要讲解在centos7.9系统中,如何源码编译GNU编译器套件下GCC7.5,并正确的导入用户环境,以及同时存在GCC编译器和INTEL编译器时如何指定哪种编译器。

一、★GNU编译器套件定义

GNU编译器套件包括C、C++、 Objective-C、 Fortran、java、Go等语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)

GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)

二、★GNU-GCC编译环境说明

Linux系统:centos7.9离线(已配置离线YUM源)

Centos7.9_YUM源离线配置链接编译器:GCC4.8.5(系统默认安装版本)GCC软件版本:gcc-7.5.0.tar.gz依赖软件包版本:gmp-6.1.0.tar.bz2 isl-0.16.1.tar.bz2 mpc-1.0.3.tar.gz mpfr-3.1.4.tar.bz2

注意!不同版本的gcc编译的时候,依赖的三方包软件的版本都不太一样,所以一定要安装对应的版本

gcc-7.5源码包及对应三方库源码包

三、★GNU-GCC编译安装

3.1 依赖软件包安装

# 联网安装模式tar -zxvf gcc-7.5.0.tar.gzcd gcc-7.5.0./contrib/download_prerequisites # 自动安装依赖库

# 离线安装模式,主备好4个依赖软件包tar -zxvf gcc-7.5.0.tar.gzcd gcc-7.5.0cp gmp-6.1.0.tar.bz2 isl-0.16.1.tar.bz2 mpc-1.0.3.tar.gz mpfr-3.1.4.tar.bz2 ./ # 复制依赖包到gcc目录./contrib/download_prerequisites

注意!gcc依赖包不需要解压,直接放到gcc-7.5.0目录中即可。作者也看到有很多人把四个依赖包单独编译安装,这样不仅麻烦还容易出错,其实在gcc源码包中就有安装依赖包的脚本文件,如上执行运行脚本即可轻松安装4个依赖软件包。

3.2 gcc-7.5版本编译安装

# 软件版本:gcc-7.5.0.tar.gzcd gcc-7.5.0./configure --enable-bootstrap --enable-shared --enable-threads=posix \--enable-checking=release --with-system-zlib --enable-__cxa_atexit \--disable-libunwind-exceptions --enable-gnu-unique-object \--enable-linker-build-id --with-linker-hash-style=gnu \--enable-languages=c,c++,fortran --enable-plugin \--enable-initfini-array --disable-libgcj \--enable-gnu-indirect-function --with-tune=generic \--disable-multilib --prefix=指定gcc安装路径make -j 8make install

注意!gcc编译强烈建议要指定安装路径,也就是呀加上参数–prefix=,因为在cenos7系统中,有默认的gcc版本4.8.5,如果选择默认安装,在后面转换gcc版本的时候就会出现问题。在进行make编译时,强烈建议调用多核,这样可以更快的编译完成。如果只调用单核,编译过程可能需要2小时左右。

四、★GNU-GCC环境导入

4.1 个人主机环境

vim ~/.bashrc # 打开个人环境配置文件.bashrc,增加如下命令,保存退出export PATH=指定gcc安装路径/bin:$PATHexport LD_LIBRARY_PATH=指定gcc安装路径/lib64:$LD_LIBRARY_PATH

source ~/.bashrc # 立即生效

4.2 HPC集群环境

module avail # 确定当前是否安装Environment Modules软件包,如果有可以看到环境配置文件路径cd /当前环境的路径/modules5/modulefiles # 进入到自己Environment Modules中的配置目录中mkdir gcc;cd gcc vim 7.5 # 新建文件,以gcc的版本号为名字加以区分,增加如下命令,保存退出#%Module1.0## Module file created by authorconflict gccproc ModulesHelp {} {puts stderr "by gcc 4.8.5"}prepend-path PATH "指定gcc的安装路径/bin"prepend-path LD_LIBRARY_PATH "指定gcc的安装路径/lib64"

module avail # 查看gcc环境是否已配置正确module load gcc/7.5.0 #导入gcc环境

4.3 gcc版本验证

当gcc编译安装好后,加载到当前环境,通过命令查看是否加载正确,同时查看版本信息。

# 三个命令的版本信息应该一样,如下图所示gcc -vg++ -vgfortran -v

五、★GNU-GCC使用情景

5.1 仅有GNU编译器套件

当系统环境中,只有GNU编译器的时候,但有不同版本。这个时候确定使用哪个版本,就加载哪个版本进行编译,同时要保证当前的源码统一使用同一版本。因为使用不同版本GCC编译下的源码,运行的时候需要对应版本GCC环境。

5.2 GNU编译套件和INTEL编译器共存

当系统中同时存在GNU编译套件和INTEL编译器的时候,那么在源码编译的时候就使用命令参数指定使用GNU编译套件下的GCC,如下所示:

# 指定GNU-gcc编译器CC=gcc CXX=g++ FC=gfortran cmake .. -DCMAKE_INSTALL_PREFIX=指定安装路径makemake install

# 指定INTEL编译器CC=icc CXX=icpc FC=ifort cmake .. -DCMAKE_INSTALL_PREFIX=指定安装路径makemake install

六、★GNU-GCC支持C++特性

注意!gcc版本很多,什么时候需要使用老版本,什么时候又需要调用新版本呢?这个取决于需要编译的源码程序。当编译的源码比较老旧的时候,c++新特性不高于c++11的时候用默认4.8.5的版本就可以,反之如果编译的时候出现很多编译器导致的错误类型,那么就要考虑调用更高版本的GCC。

七、★最后

以上内容都是经过实战验证过的,关于调用gcc版本的问题,作者建议能使用默认版本(gcc4.8.5)就不要调用更高的版本,在实际的工作中并不是所有的环境都会有高版本被安装的。

(●’◡’●)最后感谢屏幕另一端你的支持。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。