在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语言库,支持任意精度和数字。
安装这三个库的方法:
- 在解压出来的项目目录下运行
./contrib/download_prerequisites
会自动下载安装这三个库的压缩包。当然这需要联网。(推荐) - 用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/目录下
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
可用于使应用程序位于最顶层,即将其保持在所有其他窗口之上。只需从系统通知区域的 DeskPins 图标中抓取一个图钉,然后单击任意窗口即可。 该功能与某些程序中的“Always on Top”设置相同。 链接:https://share.weiyun.com/…