记录一次gcc的编译

记录,一次,gcc,编译 · 浏览次数 : 11

小编点评

**1. 下载源代码包** 从中科大镜像站下载最新的 GCC13.2 版本的压缩包,并将其解压到项目目录下。 **2. 准备环境系统** 安装 GCC 和 g++,构建工具 make 的库: * `libgmp-dev` * `libmpc-dev` * `libmpfr-dev` **3. 配置编译参数** 使用以下命令配置编译参数: ```bash sudo ./configure --prefix=/usr/local/gcc13.1.0/ --disable-multilib --prefix=/usr/local/gcc13.1.0/ --disable-multilib ``` **4. 编译和安装** 使用以下命令编译和安装 GCC: ```bash sudo make -jnn sudo make install ``` **5. 替换旧的 GCC 和 g++** 将 `/usr/bin` 目录下的 `gcc` 和 `g++`软连接指向自己的编译输出目录。 **6. 验证编译结果** 使用以下命令验证编译成功: ```bash gcc -version g++ -version ``` **注意:** * `nnn` 代表编译线程数,根据你的 CPU 核心数设置。 * `--disable-multilib` 选项禁用多线程编译,因为 GCC13.2 是单线程编译器的。 * `--disable-multilib` 选项还会禁用使用多库编译,因为 GCC13.2 默认使用多库编译。 * `sudo` 用于确保所有指令都具有执行权限。

正文

在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/目录下

与记录一次gcc的编译相似的内容:

记录一次gcc的编译

在deepin23上编译gcc13.2 deepin20素以软件版本过老被人诟病,换成最新的deepin23之后情况大有好转,但是gcc版本为11.2,鄙人对此仍有意见,所以特意研究了如何编译一份较新的gcc来用。 1.下载源码包 http://mirrors.ustc.edu.cn/gnu/gcc

记录一次在欧拉(openEuler22.03LTS-SP4)系统下安装(踩坑)Freeswitch1.10.11的全过程

目录前言安装环境1. 下载Freeswitch1.1 git clone 下载freeswitch库1.2 官网下载2. 开始安装前的工作2.1 安装编译时需要的环境【先安装这个!】2.2 configure前需要安装的库2.2.1. spandsp2.2.2. sofia-sip2.2.3. li

记录一次排查解决服务器卡死的过程

前言 自己个人兴趣爱好,线上有一个阿里云服务器,处理数据用的,会频繁IO和分析数据。隔一段时间就会卡死(大概2个月),重启就OK。本来没当一回事,直到后来影响到赚取money了才引起重视。服务的启动脚本如下: nohup java -Xms512m -Xmx1024m -jar xxx.jar &

记录一次WhatTheFuck经历

起因 很早之前就一直在维护一个git仓库,平时调研什么组件就会在里面新建一个springboot的工程用来编写示例代码。 最一开始使用的是SpringInitializr,后来网站更新之后,只能生成JDK17+的工程,WhatTheFuck?近期刚从8切换到11. 于是弃用并改用 StartAliy

记一次ThreadLocal中的用户信息混乱问题

记录一次开发中遇到的关于 ThreadLocal 问题,场景是数据库表中的操作人总是无缘无故的被更改,排查了几遍代码才发现是 ThreadLocal 没有及时清理导致的。

记录一次安装PIDtoolBox报缺少jvm.dll问题。

背景: 1.在安装PIDtoolBox时,报 安装程序错误 安装程序无法启动JVM。 could not find file C:\Users\AdministratorAppData\Local\MathWorks\app installer cache\R2018b\ win64vinstall

记录一次fs通话无声的问题

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 fs的实际应用中,由于网络、配置等问题,经常会产生通话无声的问题。 环境 CentOS 7.9 freeswitch 1.10.7 问题描述 部署一台新服务器,作为SBC,对接B路,部署简图如下。 A -- fs1 -- fs2(f

[转帖]记录一次spring-boot程序内存泄露排查

现象 spring boot项目jvm启动配置-Xms4g -Xmx4g,然而很不幸的是程序所占的内存越来越高,都达到了12个多G,只能临时重启服务 常用命令 jstat -class PIDjstat -compiler PIDjstat -gc PIDjstat -gccapacity PIDj

[转帖]记录一次前端内存泄漏排查经历

https://juejin.cn/post/6844904019983335438 对于前端的“内存泄漏”这个东西,说实话我只在书上看到过: 闭包、匿名函数和事件绑定尤其容易造成内存泄漏。 然而这些操作造成的“内存泄漏”究竟是什么样子的?如何排查?虽然很好奇,却不得而知。直到这次公司应用频繁出现浏

记录一次前端表格选型过程

> 摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 ## 客户需求: 最近,接到一个客户项目,前期沟通时,客户说,我们日常基本都是使用Excel