Deepin15.11手动升级GCC8.3方法和经验

Deepin15.11手动升级GCC8.3方法和经验

2019年准备跨平台开发一开源项目需要stdc++14,因此选择采用Deepin+GCC8.3+Eclipse CDT搭建开发环境。Deepin15.11已安装GCC6.0.3,在升级安装GCC8.3时遇到很多问题。本文总结和分享安装GCC8.3的经验和安装方法。

一、 遭遇的问题

1、 生成GCC-8.3.0 make -j4 很快出错退出
GCC-8.3.0 生成时可使用 make -j4 (多线程生成)。
在虚拟机中如果只配置一个内核,可能因多线程make出错;如果 make -j4 生成出错则用 make 重试。
2、 在生成GCC-8.3.0时的其它问题

  1. 操作系统未更新,可能是失败因素之一。解决:重设系统更新源,用sudo apt-get update和sudo apt-get upgrade更新系统,此时gcc被升级为7.3.0。(注意:更新完后可能显示存在一些未更新问题,再使用 sudo apt-get update --fix-missing和sudo apt-get upgrade更新系统)
    3、 编译依赖项需要注意
  2. 注意依赖库的顺序 gmp、mpfr、mpc、isl
  3. 注意依赖库的版本 gmp-6.1.2、mpfr-4.0.3、mpc-1.1.0、isl-0.21
  4. 注意依赖关系
    mpfr -> gmp
    mpc -> gmp、mpfr
    isl -> gmp
  5. !!! 编译生成编译依赖库注意 !!!
    ./configure --prefix=/usr/local/xxx-x.x.x (库名和版本)
    make
    make check (注意!在编译依赖库时,不采用可能是导致失败的因素)
    sudo make install
    4、 安装m4等工具
  6. 安装m4-1.4.17、autoconf-2.65、automake-1.15.1、libtool-2.4.5、texinfo-6.3。
  7. 安装tar.gz 的方法
    tar -zxvf xxxx-x.x.x.tar.gz -C /opt/gcc8.3/ xxxx-x.x.x (-C 大写!)
    cd /opt/gcc8.3/ xxxx-x.x.x
    ./configure –prefix=/usr/local
    sudo make && make install
  8. 安装 automake-1.15.1.tar.xz 的配置
    ./configure --prefix=/usr/local --docdir=/usr/share/doc/automake-1.15.1
    make
    make -j4 check
    make install
  9. 安装 tar.xz 的方法
    cp m4-1.4.17.tar.xz /opt/gcc8.3/
    cd /opt/gcc8.3
    xz -d m4-1.4.17.tar.xz
    tar -xvf m4-1.4.17.tar
    cd m4-1.4.17
    ./configure –prefix=/usr/local
    sudo make && make install

二、 安装工具过程

1、 重设更新源,更新系统
开发终端(之后均是)
sudo su ==> 深入密码进入 root
dedit /etc/apt/sources.list (deepin-edit编译源配置文件)
文件中添加下列一行,ctrl+s保存退出
deb [by-hash=force] https://mirrors.tuna.tsinghua.edu.cn/deepin panda main contrib non-free
执行sudo apt-get update和sudo apt-get upgrade命令,等待完成。
shutdown -r now (重启系统)
2、 安装工具
安装顺序 m4-1.4.17、autoconf-2.65、automake-1.15.1、libtool-2.4.5、texinfo-6.3
按照 一、4、(3)(4)的方法逐项安装。
shutdown -r now (重启系统)

三、 安装依赖库

1、 下载依赖库
下载gmp-6.1.2、mpfr-4.0.3、mpc-1.1.0、isl-0.21
从gnu.org网站下载,如:https://ftp.gnu.org/gnu/mpc/
2、 在/opt下创建临时目录
sudo su (root用户)
mkdir /opt/gcc8.3
3、 安装gmp-6.1.2
sudo su (root用户)
cp gmp-6.1.2.tar.xz /opt/gcc8.3
cd /opt/gcc8.3
xz -d gmp-6.1.2.tar.xz (打开xz文件)
tar -xvf gmp-6.1.2.tar (解包)
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
make
make check
make install
sudo ln -s /usr/local/gmp-6.1.2 /usr/local/gmp
4、 安装mpfr-4.0.3
sudo su (root用户)
tar -zxvf mpfr-4.0.3 -C /opt/gcc8.3 (解包到指定路径并创建目标)
cd /opt/gcc8.3/mpfr-4.0.3
./configure --prefix=/usr/local/mpfr-4.0.3 --with-gmp=/usr/local/gmp
(注意 --with-xxx=/usr/local/xxx 连接依赖项)
make
make check
make install
sudo ln -s /usr/local/mpfr-4.0.3 /usr/local/mpfr
5、 安装mpc-1.1.0
sudo su (root用户)
tar -zxvf mpc-1.1.0 -C /opt/gcc8.3 (解包到指定路径并创建目标)
cd /opt/gcc8.3/mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
make
make check
make install
sudo ln -s /usr/local/mpc-1.1.0 /usr/local/mpc
6、 安装isl-0.21
sudo su (root用户)
tar -zxvf isl-0.21 -C /opt/gcc8.3 (解包到指定路径并创建目标)
cd /opt/gcc8.3/isl-0.21
./configure --prefix=/usr/local/isl-0.21 --with-gmp=/usr/local/gmp -
make
make check
make install
sudo ln -s /usr/local/isl-0.21 /usr/local/isl
7、 添加导出库路径设置
sudo su (root用户)
dedit /etc/profile
在配置文件后面添加库路径:
export LD_LIBRARY_PATH=/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib:/usr/local/isl/lib:$LD_LIBRARY_PATH
sudo source /etc/profile
8、 添加
在配置文件ld.so.conf.d中声明手动安装的库的路径。
sudo su (root用户)
dedit /etc/ld.so.conf
#加入以下四个路径
/usr/local/gmp/lib
/usr/local/mpfr/lib
/usr/local/mpc/lib
/usr/local/isl/lib
执行 ldconfig命令 (ldconfig -v 命令更新 ld.so.conf库文件)
发生如下错误:
error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory
将 /usr/local/lib 加入“/etc/ld.so.conf” 用ldconfig -v更新

四、 生成安装GCC、GDB

1、 解压缩创建build临时目录
sudo su (root用户)
tar -zxvf gcc-8.3.0.tar.gz -C /opt/gcc8.3 (解包到指定路径并创建目标)
cd /opt/gcc8.3/gcc-8.3.0
mkdir build
cd build
2、 配置makefile
配置时注意:(1)–enable-checking=release --enable-languages=c,c++(注意两个’-’)
(2)–disable-multilib
(3)连接各依赖项目
(4)将gcc安装到/usr/local/gcc-8.3.0
…/configure --prefix=/usr/local/gcc-8.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-mpfr=/usr/local/mpfr --with-gmp=/usr/local/gmp --with-mpc=/usr/local/mpc --with-mpc=/usr/local/isl-0.21

// 注意做好备份!
…/configure -enable-checking=release -enable-languages=c,c++ --disable-multilib --prefix=/usr

3、 生成
make -j4(注意-jn n小于核芯数)
make install

4、
五、 编译生成、安装配置GDB
1、 下载 gdb-8.1.1
2、 编译安装gdb
sudo su (root用户)
tar -zxvf gdb-8.1.1.tar.gz -C /opt/gcc8.3 (解包到指定路径并创建目标)
cd /opt/gcc8.3/gdb-8.1.1
mkdir build
cd build
…/configure --prefix=/usr/local/gdb-8.1.1
make -j4 (注意试过 make -j4 失败)
make install
3、 配置
配置gdb-8.1.1环境变量
sudo su (root用户)
/usr/local/gdb-8.1.1/bin/gdb --version (检查是否安装)
1)设置环境变量
dedit /etc/prefile
添加gdb安装路径
export PATH=/usr/local/gdb-8.1.1/bin: P A T H 2 ) 设 置 使 用 g d b − 8.1.1 的 动 态 库 e x p o r t L D L I B R A R Y P A T H = / u s r / l o c a l / g d b − 8.1.1 / l i b : PATH 2)设置使用gdb-8.1.1的动态库 export LD_LIBRARY_PATH=/usr/local/gdb-8.1.1/lib: PATH2使gdb8.1.1exportLDLIBRARYPATH=/usr/local/gdb8.1.1/lib:LD_LIBRARY_PATH
3)更新配置文件
source /etc/prefile
4)在任意位置检查 gdb 确定安装成功
gdb -v

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值