目录

  • 一、安装背景
  • 二、安装环境
  • 三、安装步骤
    • 1. 编译环境准备
    • 2. 获取GCC-8.5.0源码包
    • 3. 安装GCC依赖包
    • 4. 编译安装GCC
  • 四、验证
    • 编译一个hello.cpp

一、安装背景

由于中标麒麟高级服务器操作系统V7.6默认的gcc/g++版本为4.8.5,鉴于gcc/g++ 4.8.5完全支持 C++11,支持部分 C++14,不支持 C++17,而gcc/g++ 8.4及以上版本才能完全支持C++17编译标准。那么当项目应用需要使用到C++17标准的一些特性时,使用系统自带的gcc/g++ 4.8.5版本是无法满足需求的,这个时候我们就需要手动编译升级gcc/g++编译工具。

二、安装环境

操作系统版本:中标麒麟高级服务器操作系统V7U6-x86_64
操作系统自带GCC版本:gcc 4.8.5
待升级的GCC版本:gcc 8.5.0

三、安装步骤

1. 编译环境准备

[root@localhost ~]# yum -y install bzip2 wget gcc gcc-c++ gmp-devel mpfr-devel libmpc-devel make

2. 获取GCC-8.5.0源码包

下载链接:gcc-8.5.0
[root@localhost ~]# mkdir /opt/gcc-8.5.0
[root@localhost ~]# cd /opt/gcc-8.5.0/
[root@localhost gcc-8.5.0]# cp /root/gcc-8.5.0.tar.gz .
[root@localhost gcc-8.5.0]# tar -zxvf gcc-8.5.0.tar.gz
[root@localhost gcc-8.5.0]# cd gcc-8.5.0

3. 安装GCC依赖包

[root@localhost gcc-8.5.0]# ./contrib/download_prerequisites

4. 编译安装GCC

(1)生成Makefile文件
[root@localhost gcc-8.5.0]# ./configure --prefix=/usr/local/gcc --enable-bootstrap --disable-multilib

(2)编译GCC
[root@localhost gcc-8.5.0]# make -j 4
注意:这里使用-j参数是利用多核CPU快速编译,具体可以通过命令“cat /proc/cpuinfo| grep “processor”| wc -l” 来查看最高设置多少个核心来进行编译工作。编译过程时间较长,请耐心等待。

(3)安装GCC
[root@localhost gcc-8.5.0]# make install

(4)修改PATH环境变量
注意:这里只修改当前用户下的环境变量。
[root@localhost ~]# vim ~/.bash_profile

(5)使PATH环境变量生效
[root@localhost ~]# source ~/.bash_profile
(6)确认当前用户下的GCC版本
[root@localhost ~]# gcc --version
[root@localhost ~]# g++ --version

四、验证

编译一个hello.cpp

[root@localhost ~]# vim hello.cpp

#include <iostream>
#include <thread>
#include <unistd.h>
#include <vector>
using namespace std;
void MyThread(int iPara)
{cout<<"MyThread----: "<< iPara <<endl;sleep(1); ///The para is Seconds
}int main()
{thread  threadDemo(MyThread, 123);cout <<"-----------start"<<endl;threadDemo.join();cout <<"-----------end"<<endl;vector<int> vecTest;vecTest.clear();vecTest.push_back(10);vecTest.push_back(20);vecTest.push_back(30);vecTest.push_back(40);vecTest.push_back(50);vecTest.push_back(1);vecTest.push_back(2);  for(auto  &changeValue:vecTest){changeValue = changeValue * 2;}cout<<"display new value:"<<endl;for(auto newValue:vecTest){cout << newValue<<endl;}return 0;
}

[root@localhost ~]# g++ hello.cpp -std=c++17 -pthread -o hello.bin
[root@localhost ~]# ./hello.bin

这里我们可以看到,编译没有问题,但是运行编译生成的可执行文件时报错了。这是因为系统仍在使用旧的libstdc++.so.6库文件,所以需要手动更新这个库文件。步骤如下:
(1)先查看当前libstdc++.so.6库文件是否支持CXXABI_1.3.9和GLIBCXX_3.4.22;
[root@localhost ~]# strings /lib64/libstdc++.so.6 | grep CXXABI_1.3.9
[root@localhost ~]# strings /lib64/libstdc++.so.6 | grep GLIBCXX_3.4.22

备注:上述命令执行结果没有输出信息,代表不支持CXXABI_1.3.9和GLIBCXX_3.4.22。
(2)搜索新编译安装的GCC的libstdc++.so.6库文件;
[root@localhost ~]# find / -name libstdc++.so

(3)拷贝新的libstdc++.so.6库文件到操作系统/lib64/目录中,并重新生成链接库文件;
[root@localhost ~]# cp /opt/gcc-8.5.0/gcc-8.5.0/x86_64-pc-linux-gnu/libstdc+±v3/src/.libs/libstdc++.so /lib64/
[root@localhost ~]# ln -sf /lib64/libstdc++.so /lib64/libstdc++.so.6

(4)重新运行hello.bin二进制文件,可以正常执行。
[root@localhost ~]# ./hello.bin

中标麒麟高级服务器操作系统V7.6升级安装GCC-8.5.0编译工具相关推荐

  1. 银河麒麟高级服务器操作系统V10SP1 - ISO镜像定制 + KickStart自动化安装

    文章目录 一.基础环境搭建 1. 原始ISO获取 2. 系统安装 二.ISO镜像定制 1. 准备工作 2. 修改ISO镜像 3. 生成ISO镜像: 三.ISO镜像验证 一.基础环境搭建 1. 原始IS ...

  2. 银河麒麟高级服务器操作系统V10上安装k8s单机集群

    前言 本文介绍银河麒麟高级服务器操作系统V10上安装部署k8s单机集群及一些基础的kubectl指令 本文涉及部署脚本主要源自基于https://github.com/easzlab/kubeasz在 ...

  3. 【Linux operation 23】Win 10 64位(X86 架构CPU)安装ARM架构的虚拟机(银河麒麟高级服务器操作系统 V10)

    1.银河麒麟高级服务器操作系统 V10(鲲鹏版)下载: 官网下载 https://www.kylinos.cn/scheme/server/1.html 1.银河麒麟高级服务器操作系统V10x86/兆 ...

  4. window10下安装银河麒麟高级服务器操作系统(飞腾版)V10

    1.系统镜像 2.安装虚拟机 坑:我们经常使用的电脑CPU是x86架构的,然后我们安装x86架构的64位处理器的操作系统直接使用VMware等虚拟软件进行虚拟,而对与不同的CPU架构的arm架构的操作 ...

  5. 银河麒麟高级服务器操作系统V10——LVM创建与使用

    银河麒麟高级服务器操作系统V10--LVM创建与使用 fdisk -l 查看当前分区表信息 fdisk 新增一块 2 TB 分区并个性 ID 为 8e fdisk和lsblk 查看最新分区信息 将物理 ...

  6. 银河麒麟高级服务器操作系统V10SP2安装JDK

    JDK是Java语言的软件开发工具包,是整个java开发的核心,它包含了JAVA的运行环境(Java运行环境Java Runtime Environment,简称JRE)和JAVA工具. JDK与Op ...

  7. VMware 安装 银河麒麟高级服务器操作系统 V10 + QT 开发环境搭建

    下载并安装vmware 下载银河麒麟操作烯烃服务器版v10的镜像文件 从官网下载,因为是x86的电脑芯片,选择AMD64版,即 vmare 安装麒麟操作系统 注意事项: 安装位置选择自动分区 网络和主 ...

  8. 银河麒麟高级服务器操作系统V10-系统管理员手册:01 基本系统配置

    目录 第一章 基本系统配置 1.1. 系统地区和键盘配置 1.1.1. 配置系统地区 1.1.1.1. 显示当前配置 1.1.1.2. 显示可用地区列表 1.1.1.3. 配置地区 1.1.2. 配置 ...

  9. 银河麒麟高级服务器操作系统V10 SP2安装人大金仓V8R6数据库

    目录 1.安装环境配置 1.1配置本地yum源 1.2同步本地时间 1.3配置本地环境 2.安装依赖关系 3.安装数据库 1.安装环境配置 1.1配置本地yum源 [root@kylintest2 ~ ...

  10. 银河麒麟高级服务器操作系统(飞腾版)V10

    镜像太大无法上传,只有放网盘了 链接:https://pan.baidu.com/s/1cK2GAzViME11cTbO7_S2Vw  提取码:bu6p

最新文章

  1. 2021-2027年中国智能调光玻璃行业市场行情动态及投资前景分析报告
  2. android 蓝牙找不到电脑,Android6.0 蓝牙搜索不到设备原因
  3. wordpress-4.7.2-zh_CN页面加载慢
  4. uva1471 二叉搜索树
  5. ruby中exec,system,%x的区别
  6. [系统安全]使用OD编写连连看外挂
  7. 交大c语言第一次作业答案,第一次作业答案(供参考)
  8. LeetCode篇:1(两数之和)
  9. JVM参数之-XX:+HeapDumpOnOutOfMemoryError(导出内存溢出的堆信息(hprof文件))
  10. java socket 异常处理_java.net.SocketException四大异常解决方案
  11. SVG-edit 是一个快速的、基于 Web 的、由 JavaScript 驱动的 SVG 绘图编辑器
  12. CorelDRAW零基础入门到精通
  13. Python输出页面源代码
  14. 常州大学计算机课程表,常州大学公课表
  15. 签个到,哎,下午的数值计算可以考的好点的。。。。忧桑。。。
  16. 基于ESP8266的STM32物联网开发板
  17. 图解IFRS9 金融工具(2)金融工具基本概念
  18. mysql左模糊 走索引_mysql的模糊查找是否走索引问题
  19. 记一次息屏指纹解锁性能优化实现
  20. Winform嵌入Web网页-CefSharp组件

热门文章

  1. c语言读取cmos的原理,电脑主板CMOS电路原理分析
  2. ISO 9001是什么?ISO 9001 质量管理体系详细介绍
  3. 如何破解隔壁妹子的wifi密码,成功率高达90%
  4. STM32 上位机 测试蓝牙电话功能功能(包括拨打电话/挂断电话/接听电话/Audio Transfer/获取通话电话号码/获取本地电话号码/激活语音识别/获取本地号码/获取运营商名字/3GPP指令)
  5. PyMuPDF 拼版(二)
  6. Java调用WebService接口
  7. U盘快捷方式病毒修复
  8. PowerBI Report Server借助Wap与ADFS实现集成一
  9. 转载:完全卸载SQL Server 2005的方法
  10. 毕设-基于SSM仓库管理系统