GCC 多版本支持用户指南
简介
为了保障操作系统的稳定性,一般在进行基础软件选型时不会选用最新的版本,而是倾向于使用相对稳定的版本,因此当前 openEuler 22.03 LTS 使用 GCC 10.3.1 作为基线进行开发。然而GCC 10.3.1 只能支持部分 Fortran OpenMP 4.5 规范和较少的 C/C++ OpenMP 5.0 语言规范。为了支持全部 Fortran OpenMP 4.5 规范,设计双版本 GCC,对于需要使用 GCC 10.3.1 不支持的 OpenMP 4.5 规范的应用,可以使用多版本编译器 gcc-12 来支持编译构建。
安装与部署
软件要求
操作系统:openEuler 22.03 LTS SP4
硬件要求
aarch64 架构
安装软件
为了和默认 GCC 安装做出区分,防止多版本 GCC 的安装和默认 GCC 的安装依赖库冲突,gcc-12 的多版本软件包名以 “gcc-toolset-12-” 为前缀,后面接上原有 GCC 软件包名。
默认编译器 gcc-10.3.1,安装路径为 /usr/
:
yum install -y gcc gcc-c++ gcc-gfortran
多版本编译器 gcc-12,安装路径为/opt/openEuler/gcc-toolset-12/root/usr/
:
yum install -y gcc-toolset-12-gcc*
使用方法
gcc-12 多版本编译器软件包安装在/opt/openEuler/gcc-toolset-12/root/usr/
下,因此可使用如下命令使用软件包:
export PATH=/opt/openEuler/gcc-toolset-12/root/usr/bin/:$PATH
export LD_LIBRARY_PATH=/opt/openEuler/gcc-toolset-12/root/usr/lib64/:$LD_LIBRARY_PATH
注意:多版本编译器 gcc-12 仅用于支持 GCC 10.3.1 不支持的 OpenMP 4.5 规范,其他特性建议使用默认 gcc-10.3.1 防止发生未知编译错误。
兼容性说明
此节主要列出当前一些特殊场景下的兼容性问题。本项目持续迭代中,会尽快进行修复,也欢迎广大开发者加入。
- 当前 GCC 多版本方案仅适配 OpenMP 4.5 语言规范场景。