首页 > 其他分享 >gcc 9.3编译

gcc 9.3编译

时间:2022-11-17 14:24:54浏览次数:60  
标签:gcc enable -- 编译 usr 9.3

CentOS7升级GCC版本至9.3
1 前言
2 开始
2.1 下载GCC69.3.0源码并解压
2.2 安装gcc所需依赖项
2.3 编译gcc源码
2.4 编译生成makefile文件,并安装
2.5 设置环境变量
2.6 设置头文件
2.7 设置库文件
2.8 加载动态连接库
2.9 安装并配置完成,测试一下版本号

1 前言

前段时间618腾讯云搞活动,买了台1H2G的CVM,拿来搭建个自己之前写的项目练练手,装Redis的时候出现了一些问题,百度一查发现是CentOS自带的GCC版本太低,导致Redis编译失败。于是我四处寻找解决办法,终于搞定了。这里我整理一下升级的过程,希望能帮到有需要的人。

2 开始

先执行yum -y install gcc-c++,安装gcc-c++编译环境,要不然后面make gcc 9.3.0会报错

2.1 下载GCC69.3.0源码并解压

点这 gcc-9.3.0.tar.gz 下载gcc9.3的源码包,也可以使用wget命令下载。将下载好的源码包放在/usr/lcoal/src目录下,然后解压tar -zxvf gcc-9.3.0.tar.gz

https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz

2.2 安装gcc所需依赖项

执行这条命令,获取安装gcc所需要的依赖项 ./contrib/download_prerequisites,当然你也可以在这里找到gmp mpfr mpc这几个包,下载后解压放入gcc根目录下

2.3 编译gcc源码

在gcc根目录下创建编译目录build(随便叫啥都行),执行以下命令
cd gcc-9.3.0 && mkdir build && cd build
创建好以后执行以下命令,开始编译gcc

…/configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

这里解释下各参数代表的意思

–-enable-languages表示你要让你的gcc支持哪些编程语言

-–disable-multilib表示编译器不编译成其他平台的可执行代码;

-–disable-checking表示生成的编译器在编译过程中不做额外检查

–-enable-checking=xxx 表示编译过程中增加XXX检查

–prefix=/usr/local/gcc-9.3.0 指定安装路径

–enable-bootstrap 表示用第一次编译生成的程序进行第二次编译,然后用再次生成的程序进行第三次编译,并且检查比较第二次和第三次结果的正确性,也就是进行冗余的编译检查工作。 非交叉编译环境下,默认已经将该值设为 enable,可以不用显示指定;交叉编译环境下,需要显示将其值设为 disable。

2.4 编译生成makefile文件,并安装

make && make install

注:
据说 make -j处理器核心数可以设置所有CPU多线程编译(下次试试),不加是默认的比较慢,彼此编译用了2.5小时

make -j96 && make install

安装大约2小时左右,慢慢等吧…

安装后的环境配置

2.5 设置环境变量

touch /etc/profile.d/gcc.sh
sudo chmod 777 /etc/profile.d/gcc.sh
sudo echo -e ‘\nexport PATH=/usr/local/gcc-9.3.0/bin:$PATH\n’ >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh

2.6 设置头文件

sudo ln -sv /usr/local/gcc/include/ /usr/include/gcc

2.7 设置库文件

touch /etc/ld.so.conf.d/gcc.confsudo chmod 777 /etc/ld.so.conf.d/gcc.conf
sudo echo -e “/usr/local/gcc/lib64” >> /etc/ld.so.conf.d/gcc.conf

2.8 加载动态连接库

sudo ldconfig -v
ldconfig -p |grep gcc

2.9 安装并配置完成,测试一下版本号

输入 gcc -v显示以下信息说明已成功安装GCC9.3.0

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-9.3.0/libexec/gcc/x86_64-pc-linux
-gnu/9.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: …/configure --prefix=/usr/local/gcc-9.3.0 --enable
-bootstrap --enable-checking=release --enable-languages=c,c++ --disa
ble-multilib
Thread model: posix
gcc version 9.3.0 (GCC)

标签:gcc,enable,--,编译,usr,9.3
From: https://www.cnblogs.com/lijianhua1994/p/16899317.html

相关文章

  • Visual Studio 2017 编译 mongo-c-driver 库
    VisualStudio2017编译mongo-c-driver库运行环境:......
  • openjdk11源码编译调试
    一源码二系统工具macOSBigSur11.5.2Xcode12.5.1openjdk11.0.11Make3.81autoconf(GNUAutoconf)2.71Appleclangversion12.0.5(clang-1205.0.22.11)c......
  • 自学 TypeScript 第二天 编译选项
    前言:昨天我们学习了TS的数据类型,不知道大家回去以后练习没练习,如果你练习了一定会发现一个问题,我们的TS好像和JS不太一样JS写完之后直接就可以放到页面上,就可以用......
  • Linux环境下配置vscode的C/C++ 的make编译环境(编写makefile方式)代码Demo版
    以前写过同样话题下的图文版的,这里给出一个代码Demo版本,上一个图文版本参见:​​Linux环境下配置vscode的C/C++的make编译环境(编写makefile方式)​​  ===================......
  • 01-C++ 程序的编译和运行
    第一种方式将编译和链接分成两步。#编译,生成.o文件g++-chello.cpp#链接,生成可执行文件a.outg++hello.o#链接,生成可执行文件hellog++hello.o-ohello......
  • 关于scanf函数不能在某些vs编译器中用的问题
    scanf在vs2022中是一个不安全的函数,vs自定义scanf_s是一个安全的函数,但是这在转给其他编译器可能不适用我们可以在开头加上一个#define_CRT_SECURE_NO_WARNINGS1可以解......
  • Keras学习记录之模型编译-训练-评估-预测
    模型编译compile调用格式Keras的模型编译的语法格式为:compile(optimizer,loss=None,metrics=None,loss_weights=None,sample_weight_mode=None,weighted_metrics=None,......
  • [代码审计基础 02]-SQL注入和预编译和预编译绕过
    SQL注入thinkphp基本没得SQL注入,除非魔改ORM框架的错误使用一个专门用来防御SQL注入的框架错误写法-java/mybatis<selectid="findUserByname"parameterType="java......
  • 记录visiual studio 编译qt5.15.6
    准备工作1.qt源码下载可通过gitee下载,具体不介绍2.perl安装建议通过360软件管家安装,或者其他软件市场。比去官方下载快多了3.python我是用3.9的4.visiualstudio......
  • Qt 在Mac上无法识别编译器
    由于Mac系统更新,导致我之前的Xcode不能用了,然后我就把Xcode卸载了,结果悲剧了,Qt无法使用了,提示无法识别Apple的clang编译器。使用Qt前,必须先安装Xcode!!!!关闭QtCreator,在终......