GCC版本低了会出错,导致头文件不能解析,需要升级GCC。
先要安装默认的GCC#yum -y install gcc gcc-c++
再安装自定义版本的GCC
官方地址很慢:http://ftp.gnu.org/gnu/gcc/
国内镜像很快:http://mirror.hust.edu.cn/gnu/gcc/
http://mirrors.nju.edu.cn/gnu/gcc/
安装GCC版本:9.3.0
一、下载gcc最新源码包
#wget http://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
二、解压缩
#tar -xzvf gcc-9.3.0.tar.gz
三、进入解压缩目录
#cd gcc-9.3.0
四、运行download_prerequisites脚本
这个脚本会自动帮你下 载所需要的依赖文件和库
#./contrib/download_prerequisites
五、建立输出目录
将所有的中间文件都放到该目录
1)建立目录
#mkdir gcc-build-9.3.0
2) 进入目录
#cd gcc-build-9.3.0
六、配置
需要返回上一层
例如:
#../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
–enable-languages表示你要让你的gcc支持那些语言,–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。–disable-checking生成的编译器在编译过程中不做额外检查,也可以使用*–enable-checking=xxx*来增加一些检查
这是一个比较全的
#../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
注意要
--enable-threads=posix
不要
--enable-cet
这是最终安装成功的配置:
../configure --enable-bootstrap --enable-languages=c,c++,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
各种报错解决
1.需要安装zlib库
#yum install -y zlib zlib-devel
2.致命错误:gnu/stubs-32.h:没有那个文件或目录
#yum install -y glibc-devel.i686
#yum install -y glibc-devel.i686
七、编译
#make
这一步比较耗时,需要4小时左右。
八、安装
#make install
需要root用户
九、重启
#reboot
不重启还是4.8
十、验证
#gcc -v