0
点赞
收藏
分享

微信扫一扫

[Linux] 非root安装GCC9.1.0

说明

一般Linux系统自带或公共的​​GCC​​​版本都很低,如目前我们的服务器版本的​​GCC​​​还停留在​​gcc-4.9.3​​​,而​​官网​​​已到达​​9.2​​​版本(下载​​http://ftp.gnu.org/gnu/gcc/​​​)
,有些项目编译时需要更高版本的​​​GCC​​,这时就需要自己额外安装一个了。

网上关于非 ​​root​​用户的教程有很多,但大多数都很旧且不靠谱,我找到了几个比较实用的,总结一下,亲测有效。

安装​​GCC​​​主要依赖三个库:​​GMP​​​, ​​MPFR​​​ 和​​MPC​​​,另还有个​​ISL​​​库(不知是否是必需)。之前的旧版本可能需要手动依次安装这些依赖库,但较新的版本其实只需要在​​GCC​​​目录下运行​​./contrib/download_prerequisites​​命令就可以自动下载这几个组件,也不用担心版本问题。

另外一点和其他软件不同的地方在于,​​GCC​​​不能直接在其源码中编译,而是在它的目录下新建一个文件夹,然后进入这个文件夹配置并编译安装。了解了这两点,安装​​GCC​​​就一路畅通,不过编译很慢,耗时2小时以上。
[Linux] 非root安装GCC9.1.0_javascript

安装

假设我现在的路径为:​​/path/to/software​

wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz
tar -xvf gcc-9.1.0.tar.gz
mkdir gcc9 #作为安装路径
cd gcc-9.1.0
./contrib/download_prerequisites
#等待安装好依赖
mkdir gcc-9.1.0 #作为编译路径,不能直接在源码中编译
../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/path/to/software/gcc9 --enable-threads=posix
#经测试,用此gcc版本编译R时,会报错无Fortran语言,因此这里加入该语言,gcc编译的语言还有很多,可以写all,但会耗时,更多内容参考官方文档。
#../configure --disable-checking --enable-languages=c,c++,fortran --disable-multilib --prefix=/path/to/software/gcc9 --enable-threads=posix
make -j32 && make install

安装成功应该包括以下文件目录:
[Linux] 非root安装GCC9.1.0_javascript_02

添加到环境变量,就能覆盖旧版本了。

#路径要在环境变量前
export PATH=/path/to/software/gcc9/bin:/path/to/software/gcc9/lib64:$PATH
export LD_LIBRARY_PATH=/path/to/software/gcc9/lib/:$LD_LIBRARY_PATH

补充环境变量设置

1.gcc/g++等程序本身的路径
export PATH=$PATH:/install/bin
#注:/install为安装目录,下同

2.gcc头文件路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/install/include

3.g++头文件路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/install/include

4.动态链接库路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/install/lib64

5.静态库路径
export LIBRARY_PATH=$LIBRARY_PATH:/install/lib

GCC编译过程

共四步,以编译C语言程序​​(.c)​​为例:

  • 预编译:预处理生成​​.i​​文件。
  • 编译:编译成汇编语言,生成​​.S​​文件。
  • 汇编:汇编后生成目标文件​​.o​​文件。
  • 链接:将各个模块的​​.o​​文件链接起来生成一个可执行文件。

本文来自博客园,作者:​​Bioinfarmer​​。若要及时了解动态信息,请关注同名微信公众号:Bioinfarmer。


举报

相关推荐

0 条评论