KylinV10: 麒麟gcc7.3.0升级到gcc11.4.0

需求说明

1、所有步骤需要离线执行
2、需要解决包的依赖问题

.

下载离线包(g++编译依赖)

1、cpp-7.3.0-20190804.35.p08.ky10.aarch64.rpm
2、gcc-c++-7.3.0-20190804.35.p08.ky10.aarch64.rpm
3、libasan-7.3.0-20190804.35.p08.ky10.aarch64.rpm
4、libgomp-7.3.0-20190804.35.p08.ky10.aarch64.rpm
5、libstdc++-7.3.0-20190804.35.p08.ky10.aarch64.rpm
6、libstdc++-devel-7.3.0-20190804.35.p08.ky10.aarch64.rpm

.

下载离线包(gcc编译依赖)

1、gcc-11.4.0.tar.gz
2、gmp-6.1.0.tar.bz2
3、mpfr-3.1.6.tar.bz2
4、mpc-1.0.3.tar.gz
5、isl-0.18.tar.bz2

.

安装离线包并编译gcc

1、将上面的rpm包放到同一个目录,然后执行
rpm -Uvh --force --nodeps *.rpm

说明:上面这些rpm其实就是解决这个错误提示:
configure: error: *** A compiler with support for C++11 language features is required.

2、将gcc-11.4.0.tar.gz解压,然后准备编译环境

tar xzf gcc-11.4.0.tar.gz
cd gcc-11.4.0/

#重要:把gmp-6.1.0.tar.bz2、mpfr-3.1.6.tar.bz2、mpc-1.0.3.tar.gz、isl-0.18.tar.bz2放到gcc-11.4.0/目录并解压

tar xf gmp-6.1.0.tar.bz2
tar xf mpfr-3.1.6.tar.bz2
tar xzf mpc-1.0.3.tar.gz
tar xf isl-0.18.tar.bz2

#重要:创建软链(只需要软链,不需要将这几个依赖单独编译,gcc编译时会自动连带编译)

ln -s gmp-6.1.0 gmp
ln -s mpfr-3.1.6 mpfr
ln -s mpc-1.0.3 mpc
ln -s isl-0.18 isl

3、开始编译gcc

#说明:关于编译时间,8C8G的鲲鹏920上编译差不多要1小时左右才能编译完,高配置机器可按此配置和时长的倍数来计算。强烈不建议在4C4G的ARM机上编译,经常发生操作系统崩溃或卡住不动。
#在gcc-11.4.0/目录里执行
mkdir build/ && cd build/
../configure --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc-11.4
make -j$(nproc) && make install

.

使用新版gcc

#添加环境变量

echo 'export PATH=/usr/local/gcc-11.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-11.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

查看版本:gcc --version

.

躺平人士专用

#直接拿编译好的gcc来用不就得了嘛,哈哈

1、下载编译好的gcc-11.4-binary-aarch64.tar.gz,解压到/usr/local。

2、设置上面的环境变量即可使用(“使用新版gcc”)。

.

.

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注