首页 > 其他分享 >记录一次gcc的编译

记录一次gcc的编译

时间:2023-10-05 22:24:47浏览次数:31  
标签:bin gcc 记录 ++ 编译 usr local

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

标签:bin,gcc,记录,++,编译,usr,local
From: https://www.cnblogs.com/wlly-lzh/p/17744009.html

相关文章

  • .NET应用如何防止被反编译
    思维导航前言.NET应用如何防止被反编译三款免费的.NET混淆工具推荐ConfuserEx.NET混淆工具安装使用ConfuserEx工具混淆.NETFx .dll文件使用ConfuserEx工具混淆.NETFx 混淆.exe文件加入DotNetGuide技术交流群前言前段时间分享了两篇关于.NET反编译相关的文章,然......
  • chisel安装和使用+联合体union的tagged属性+sv读取文件和显示+sv获取系统时间+vcs编译
    chisel安装和使用sbt:scalabuildtool,是scala的默认构建工具,配置文件是build.sbt。mill:一个新的java/scala构建工具,运行较快,与sbt可以共存,配置文件是build.sc。chisel的安装可以参考这篇文章。安装过程务必联网,而没有联网情况下的安装,按照其它的说明,如移动缓存文件等,并无法正常......
  • SQL SERVER 存储过程执行日志记录方法(有案例)
    查询历史执行总体情况SELECTTOP100db_name(d.database_id)asDBName,s.nameas存储名称,s.type_descas存储类型,d.cached_timeasSP添加到缓存的时间,d.last_execution_timeas上次执行SP的时间,d.last_elapsed_timeas[上次执行SP所用的时间(μs)],......
  • ubuntu vscode编译vscodium
    gitclonehttps://github.com/VSCodium/vscodium.git修改点:1.get_repo.sh从build.env判断MS_COMMIT是否变更,未变更不拉取vscode源码2.build/build.sh添加SKIP_PATCH="no",在上一步后,其实patch应用完成了,所以不下载vscode的时候,再次path就会不成功,从而编译exit1prepare_vscod......
  • 2023.9-2023.10 做题记录
    好菜啊,被爆杀了/kk1.CF1572ABook模拟赛上看错题了!#$%!#&%^&#*2.CF348DTurtles类似Catalan数的推导3.CF1271DPortals贪心题。4.CF1545BAquaMoonandChess数数题。注意两个连续的1的移动即可。5.AT_agc007_b[AGC007B]ConstructSequences简单题。注意值......
  • windows上的C++编译环境
    Windows上的C++编程环境比Linux上的繁杂很多,有许多工具已经很老了,但是很多教材也还在用,很多学校的教学也还在用。另一方面,有更现代的选择,但是需要一些必要的配置和对工具链组成的理解,本文将必要的环境都介绍一遍,让新手能有一个相对完整的理解,然后迅速抛弃老旧的工具链,使用更现代......
  • 牛客刷题记录第三天
    packageobject;/***1.子类构造器必须调用父类构造器*2.静态方法要想使用非静态属性和方法,必须要创建对象,用对象.属性,对象.方法(),*不能直接属性,方法()*/classPerson{Stringname="Noname";publicPerson(Stringnm){name=nm;}}......
  • cmd powershell 命令行窗口保存更多的历史记录输出行数,防止上面的输出被自动删除
    布局-屏幕缓冲区大小-高度调大或者是用https://stackoverflow.com/questions/71099275/can-view-the-history-of-powershell-outputs这个办法自动保存到一个txt文件中参考https://stackoverflow.com/questions/1740876/more-lines-in-command-window ......
  • 【编译优化】降低镜像大小,删减未使用的函数和数据
    gnu解释https://gcc.gnu.org/onlinedocs/gnat_ugn/Compilation-options.html从最终可执行镜像中删除未使用的function和data,是由链接器来完成的。需要以下几个步骤function和data编译成单独的section,使用编译参数:-ffunction-sections-fdata-sections链接时删除未使用的段,......
  • GCC测试
    编程预处理编译汇编后运行......