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/

shell
yum install -y gcc gcc-c++ gcc-gfortran

多版本编译器 gcc-12,安装路径为/opt/openEuler/gcc-toolset-12/root/usr/

shell
yum install -y gcc-toolset-12-gcc*

使用方法

gcc-12 多版本编译器软件包安装在/opt/openEuler/gcc-toolset-12/root/usr/下,因此可使用如下命令使用软件包:

shell
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 语言规范场景。