网站首页 > java教程 正文
1. GCC工具介绍
GCC编译器:
GCC(GNU Compiler Collection)是由 GNU 开发的编程语言编译器。 GCC最初代表“GNU C Compiler”,当时只支持C语言。 后来又扩展能够支持更多编程语言,包括 C++、Fortran 和 Java 等。 因此,GCC也被重新定义为“GNU Compiler Collection”,成为历史上最优秀的编译器, 其执行效率与一般的编译器相比平均效率要高 20%~30%。
GCC编译工具链:
GCC编译工具链(toolchain),是指以GCC编译器为核心的一整套工具。它主要包含以下三部分内容:
- gcc-core:即GCC编译器,用于完成预处理和编译过程,把C代码转换成汇编代码。
- Binutils :除GCC编译器外的一系列小工具包括了链接器ld,汇编器as、目标文件格式查看器readelf等。
- glibc:包含了主要的 C语言标准函数库,C语言中常常使用的打印函数printf、malloc函数就在glibc 库中。
在很多场合下会直接用GCC编译器来指代整套GCC编译工具链。
2.GCC升级
问题记录
yum 部署gcc最多升级到2.17版本,过低版本无法预编译nodejs等重要运行环境,所以需要升级GCC版本。
问题详情
常用解决的方案为手动下载gcc.tar 包到本地进行 make 编译,但是效率极慢,即使启多线程编译 make -j4 也需要花几个小时。而且性能较差的机器会造成内存耗尽导致make中断的情况。
解决方案
查询资料得知红帽官方发布有官方开发工具包来自动管理gcc,且支持多版本并存,最重要的是不用本地编译gcc。
红帽官方Developer Toolset文档地址:
https://access.redhat.com/docum
gcc升级流程
devtoolset对应gcc的版本
devtoolset-3对应gcc4.x.x版本
devtoolset-4对应gcc5.x.x版本
devtoolset-6对应gcc6.x.x版本
devtoolset-7对应gcc7.x.x版本
devtoolset-8对应gcc8.x.x版本
devtoolset-9对应gcc9.x.x版本
devtoolset-10对应gcc10.x.x版本
可通过centos-release-scl源安装devtoolset包
yum install centos-release-scl
yum install devtoolset-8
或自行添加源来安装(我这里以CentOS7为例)
vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/rh/
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
激活gcc版本,使其生效
scl enable devtoolset-8 bash
或
source /opt/rh/devtoolset-8/enable
长期使用的话,可以将其写入系统环境变量中
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
source /etc/profile
猜你喜欢
- 2024-12-29 使用Wordpress搭建一个属于自己的网站
- 2024-12-29 Centos 安装 Jenkins centos 安装黑屏
- 2024-12-29 原神服务端搭建教程centos系统 原神服务器在哪
- 2024-12-29 centos安装geoserver并配置开机启动
- 2024-12-29 Doris安装部署 doors安装
- 2024-12-29 Java快速开发框架若依(RuoYi)centos7.6部署
- 2024-12-29 浪潮服务器如何用IPMI安装Linux系统
- 2024-12-29 Centos7.4 Yapi 服务搭建 centos7.5服务器安装教程
- 2024-12-29 Pandownload开发者被抓!我决定用Docker搭建一个多端同步网盘!
- 2024-12-29 如何在Eclipse中搭建Zabbix源码的调试和开发环境
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)