记录一次gcc的编译
在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/目录下
记录一次gcc的编译的更多相关文章
- [vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件
在Linux里面混了一个多月,vim编程用得甚爽.无奈前天将Linux里面的编程文件夹误删,而技术不精无法找回,悲痛欲绝.再者,无限怀念windows里面的游戏,并觉得现在在Linux里面也学不到什么 ...
- GCC的编译和安装 很好的资料
http://blog.csdn.net/yrj/article/details/492404 1.GCC的编译和安装2.预处理 #define 可以支持不定数量的参数. 例子如下: ...
- Gcc的编译流程分为了四个步骤:
http://blog.csdn.net/xiaohouye/article/details/52084770(转) Gcc的编译流程分为了四个步骤: 1.预处理,生成预编译文件(.文件): Gcc ...
- Linux-编译器gcc/g++编译步骤
gcc和g++现在是gnu中最主要和最流行的c&c++编译器.g++是c++的命令,以.cpp为主:对于c语言后缀名一般为.c,这时候命令换做gcc即可.编译器是根据gcc还是g++来确定是按 ...
- 学习总结:gcc/g++ 编译与链接
gcc/g++ 编译与链接 编译与链接的过程可以分解为四个步骤:预处理.编译.汇编.链接 预处理:源代码文件和相关的头文件,被预处理器cpp预处理成一个后缀为 .i 的文件(选项:-E) 编译:把预处 ...
- Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境
0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...
- gcc的编译属性和选项
1.指定内存默认对其参数: __attribute__((packed)):按一字节对其__attribute__((aligned(n))):从此之后默认按n字节对其 例如: struct stu ...
- gcc 动态编译 动态库路径
gcc 动态编译(共享库) 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令优点:体积小,编译快缺点:依赖性高 代码如下: [root@74-82-173-21 ...
- MinGW下载并配置gcc/g++编译环境
本文将讲解如何下载MinGW并配置gcc\g++编译环境 一.下载MinGW 在MinGW官网中下载“mingw-get-setup.exe” 官网传送门:http://www.mingw.org/ ...
- linux应用程序设计--GCC程序编译
GCC程序编译 linux系统下的GCC(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.GCC可以在多种硬件平台上编译出可执行程序,其执行效率与一 ...
随机推荐
- Journal of Electronic Imaging投稿分享
Journal of Electronic Imaging投稿分享 在研究生阶段中的第一篇论文,前后总共三个月,还是很开心的!!! 附下中稿图片 这个期刊从二月份开始投的,然后三月份给了大修,大修时间 ...
- 深入浅出MySQL - 架构与执行
Photo by Merilin Kirsika Tedder from Pexels 一.MySQL的逻辑架构 MySQL作为一个流行的开源关系型数据库管理系统,它可以运行在多种平台上,支持多种存储 ...
- 13. 注解配置SpringMVC
使用配置类和注解代替web.xml和SpringMVC配置文件的功能 13.1.创建初始化类,代替web.xml 在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.Se ...
- hexo博客yilia主题_缺失模块_解决方案
hexo博客yilia主题,左侧栏目有一个全部文章的按钮,刚开始开始报错缺失模块,如下图: 我解决了这个问题着实不容易饶了弯路,但是跟着提示步骤,其实很简单,走起: 1.查看node版本 win键+R ...
- MyBatis理论
MyBatis简介 MyBatis是什么? MyBatis是一款优秀的持久层框架,一个ORM(对象关系映射)框架,它支持定制化SQL.存储过程以及高级映射.MyBaits避免了几乎所有JDBC代码和手 ...
- MyBatis(log4j)
log4j介绍 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护 ...
- 自用 .net C# List集合和DataTable互转,可自定义表头
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...
- TFS 更换电脑名称后映射失效
TFS 更换电脑名称后映射失效 建议不要随便更改电脑名 环境 Visual Studio 2019 : Win10 操作步骤 查找 TFS 的相关配置文件.如果你知道你之前的电脑名字可以跳过这一步:如 ...
- jQuery入口函数测试
<script src="js/jquery-1.12.4.js"></script><script> window.onload = func ...
- TRL 正式推出,来训练你的首个 RLHF 模型吧!
我们正式向大家介绍 TRL--Transformer Reinforcement Learning.这是一个超全面的全栈库,包含了一整套工具用于使用强化学习 (Reinforcement Learni ...