4

记录一次gcc的编译 - wlly-lzh

 11 months ago
source link: https://www.cnblogs.com/wlly-lzh/p/17744009.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在deepin23上编译gcc13.2

deepin20素以软件版本过老被人诟病,换成最新的deepin23之后情况大有好转,但是gcc版本为11.2,鄙人对此仍有意见,所以特意研究了如何编译一份较新的gcc来用。


1.下载源码包

http://mirrors.ustc.edu.cn/gnu/gcc/

我相关在中科大镜像站下载东西,选择13.2版本的压缩包

2.准备环境

系统需要安装 gcc 和 g++,构建工具make

对应的库:gmp 、mpc 、mpfr

介绍一下这几个库:

GMP 是一个免费的任意精度算术库,对有符号整数、有理数和浮点数进行运算。

MPFR:GNU多精度浮点舍入库。

MPC是一个复杂数字算法的c语言库,支持任意精度和数字。

安装这三个库的方法:

  1. 在解压出来的项目目录下运行./contrib/download_prerequisites 会自动下载安装这三个库的压缩包。当然这需要联网。(推荐)
  2. 用apt 安装这几个库:libgmp-dev 、libmpc-dev 、libmpfr-dev (不保证一定可行)

3.执行configure文件

sudo ./configure --prefix=/usr/local/gcc13.1.0/ --disable-multilib

--prefix=/usr/local/gcc13.1.0/ 设置编译后文件的安装目录

--disable-multilib 禁止交叉编译(反正我用不到)

4.编译和安装

sudo make -jn

n是编译用到的线程数,按照自己的cpu情况决定

sudo make install

将编译好的文件安装到指定目录下

5.替换掉原来的gcc或g++

将/usr/bin目录下的gcc和g++软连接指向自己编译出来的gcc和个g++

sudo ln -sf /usr/local/gcc13.1.0/bin/gcc /usr/bin/gcc

sudo ln -sf /usr/local/gcc13.1.0/bin/g++ /usr/bin/g++

要替换g++的话,还需要替换libstdc++.so.6的软连接

以deepin23为例:libstdc++.so.6在/lib/x86_64-linux-gnu目录下

以我的过程为例:用来替换的libstdc++.so.6.0.32在/usr/local/gcc13.2.0/lib64/目录下


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK