如何快速安装指定版本GCC以显著提升编译效率?
- 内容介绍
- 文章标签
- 相关推荐
在上为服务器快速安装指定版本的GCC。往往会遇到以下痛点:
- 官方仓库只提供当前版本,难以满足项目对特定编译器的依赖。
- 需要在内网环境下完成安装,无法访问外部网络获取依赖。
- 手动编译源码耗时长、易出错,且缺乏统一的安装方法管理。
- 多项目共存时如何切换不同GCC版本并保持默认配置也成了难题。
再看主要优势,简化安装流程
本方案使用预编译好的RPM包。只需几条命令就可以完成部署,而且已经可在上稳定运行,无需任何外部依赖,适合内网离线部署。怎么说呢,
一、准备工作:下载与解压
- 从 aarch64 GCC 软件包.rar中提取所有 RPM 文件。
-
将解压得到的
.rpm放入自定义目录,例如/usr/local/gcc-8.2.0。
二、执行安装命令
sudo rpm -ivh --nodeps --force /usr/local/gcc-8.2.0/*.rpm
三、验证是否成功安装
gcc --version # 若显示对应版本号,则安装成功!
适用场景与使用方法概览
A) 开发部署:快速搭建 C/C++ 编译环境
- C/C++ 项目:
- 跨网站建立:SCL_ENABLE=devtoolset-8 bash,随时切换到不同版本。
- No Internet 环境:
B) 多版本管理 & 默认设置
- 启用 Software Collections 仓库:
# 安装 SCL 仓库
sudo yum install centos-release-scl
# 搜索可用 GCC 版本
yum search gcc
# 安装指定版本
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
# 启用该版本
scl enable devtoolset-8 bash
# 验证
gcc --version
- N次启动自动启用:scl enable devtoolset-8 bash && echo 'scl enable devtoolset-8 bash'>> ~/.bashrc
- `update-alternatives` 自动切换:/usr/bin/alternatives --config gcc 进行手动选择,也可以脚本化自动切换。
Caching 与并行编译提高效率
"我只想一次性跑完所有单元测试。不想每次都重新编译"
- Ccache: - 安装后只需一次完整编译,后续增量编译极快。
# 安装 ccache
sudo yum install ccache
export PATH=/usr/lib64/ccache:$PATH
export CC='ccache gcc'
export CXX='ccache g++'
make -jN 并行编译: - N 为 CPU 主要数。如 make -j$.
# 示例:
make -j$
常见问题解决速查表
| 场景 | 常见错误 | 尽快处理 |
|---|---|---|
| 仓库没有所需 GCC | No matching Packages found |
使用 SCL 或自行下载 .rpm 包 |
| 依赖冲突 | Requires: libstdc++.so.* |
用 --nodeps --force 强制覆盖或手动安装缺失共享库 |
| 默认 GCC 不生效 | gcc --version 显示旧版 |
在 .bashrc 加入 |
| 离线安装失败 | Could not resolve host ... |
确认所有 .rpm 已放在同一目录,并使用绝对方法 |
这篇文章参考了多篇官方文档与社区经验,结合实际 CentOS 7 aarch64 服务器测试,可直接复制粘贴使用。如遇特殊需求,请,其实,
。在上为服务器快速安装指定版本的GCC。往往会遇到以下痛点:
- 官方仓库只提供当前版本,难以满足项目对特定编译器的依赖。
- 需要在内网环境下完成安装,无法访问外部网络获取依赖。
- 手动编译源码耗时长、易出错,且缺乏统一的安装方法管理。
- 多项目共存时如何切换不同GCC版本并保持默认配置也成了难题。
再看主要优势,简化安装流程
本方案使用预编译好的RPM包。只需几条命令就可以完成部署,而且已经可在上稳定运行,无需任何外部依赖,适合内网离线部署。怎么说呢,
一、准备工作:下载与解压
- 从 aarch64 GCC 软件包.rar中提取所有 RPM 文件。
-
将解压得到的
.rpm放入自定义目录,例如/usr/local/gcc-8.2.0。
二、执行安装命令
sudo rpm -ivh --nodeps --force /usr/local/gcc-8.2.0/*.rpm
三、验证是否成功安装
gcc --version # 若显示对应版本号,则安装成功!
适用场景与使用方法概览
A) 开发部署:快速搭建 C/C++ 编译环境
- C/C++ 项目:
- 跨网站建立:SCL_ENABLE=devtoolset-8 bash,随时切换到不同版本。
- No Internet 环境:
B) 多版本管理 & 默认设置
- 启用 Software Collections 仓库:
# 安装 SCL 仓库
sudo yum install centos-release-scl
# 搜索可用 GCC 版本
yum search gcc
# 安装指定版本
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
# 启用该版本
scl enable devtoolset-8 bash
# 验证
gcc --version
- N次启动自动启用:scl enable devtoolset-8 bash && echo 'scl enable devtoolset-8 bash'>> ~/.bashrc
- `update-alternatives` 自动切换:/usr/bin/alternatives --config gcc 进行手动选择,也可以脚本化自动切换。
Caching 与并行编译提高效率
"我只想一次性跑完所有单元测试。不想每次都重新编译"
- Ccache: - 安装后只需一次完整编译,后续增量编译极快。
# 安装 ccache
sudo yum install ccache
export PATH=/usr/lib64/ccache:$PATH
export CC='ccache gcc'
export CXX='ccache g++'
make -jN 并行编译: - N 为 CPU 主要数。如 make -j$.
# 示例:
make -j$
常见问题解决速查表
| 场景 | 常见错误 | 尽快处理 |
|---|---|---|
| 仓库没有所需 GCC | No matching Packages found |
使用 SCL 或自行下载 .rpm 包 |
| 依赖冲突 | Requires: libstdc++.so.* |
用 --nodeps --force 强制覆盖或手动安装缺失共享库 |
| 默认 GCC 不生效 | gcc --version 显示旧版 |
在 .bashrc 加入 |
| 离线安装失败 | Could not resolve host ... |
确认所有 .rpm 已放在同一目录,并使用绝对方法 |
这篇文章参考了多篇官方文档与社区经验,结合实际 CentOS 7 aarch64 服务器测试,可直接复制粘贴使用。如遇特殊需求,请,其实,
。
