1. gcc软件包可以在清华大学开源软件镜像站上下载
https://mirrors.tuna.tsinghua.edu.cn/
2. centos7系统上安装
#yum install -y gmp-devel mpfr-devel libmpc-devel gcc gcc-c++ gcc-gfortran.x86_64 make
# tar -Jxvf gcc-10.3.0.tar.xz
# cd gcc-10.3.0/
# ./configure --prefix=/usr --disable-multilib --enable-languages=c,c++,fortran
# cat /proc/stat | grep cpu[0-9] -c //cpu_num
# make -j cpu_num
# yum remove gcc -y
删除gcc旧的版本。
# make install
# gcc -v
3. 生成参数说明:
- –enable-checking=release
对代码进行一致性检查会导致编译的时间增加,仅支持gcc编译器。总的来说如果不想等待太久,可以设置为 disable,但是这会增加产生未预期的错误的风险,所以建议开启。
- –enable-languages=c,c++, fortran
支持的高级语言类型和运行时库,可以设置的所有语言包括ada,c,c++,Fortran,java,objc,obj-c++,GO 等语言。这里只开启了c,c++ 和fortran,因为支持的语言越多,就需要安装越多的相应静态与动态库,还有五花八门的依赖库,这会让管理变得困难,体积也会变得庞大。
- –disable-multilib
生成多个系统版本的代码,如果你的操作系统是32位,默认就已经设置为 disable,这时gcc仅能生成32位的可执行程序;如果你的操作系统是64位,默认就是 enable,可以通过 -m32 选项来决定是否生成32位机器代码。如果在64位系统上,要禁止生成32位代码, 设置 --disable-multilib即可。
- –prefix=/usr/local/
指定安装路径,这里没有指定,就直接放到文件夹里就好。
- –enable-bootstrap
多次编译然后对比,看它们有没有什么不同,在非交叉编译的环境下,默认已经将该值设为 enable,可以不用特地指定;交叉编译环境下,需要把这个值设为 disable。
- –enable-threads=posix
启用posix标准的线程支持,这个设置取决于宿主或目标操作系统的类型,其它可用值有:aix,dec,solaris,win32等,如果你是其它的类UNIX系统,就需要设置相应的值。
- –enable-gather-detailed-mem-stats
允许收集详细的内存使用信息,如果设置该参数为 enable,则将来编译好的gcc可执行程序,可以通过 -fmem-report 选项来输出编译其它程序时的实时内存使用情况。
- –with-long-double-128
指定 long double 类型为128位(16字节!);设置为 without,则 long double类型将为64位(8字节),这将与普通的 double 类型一样。 基于 Glib 2.4以上版本编译时,默认已经是128位。