记录一次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可以在多种硬件平台上编译出可执行程序,其执行效率与一 ...
随机推荐
- 程序包xx不存在解决方案:java: 程序包org.aspectj.lang.annotation
java: 程序包org.aspectj.lang.annotation不存在 #我自己已经配置好pom.xml文件,但是一直报错这个 aspectj 不存在 下面是我的pom.xml配置 可以看出来 ...
- 记一次 .NET 某企业采购平台 崩溃分析
一:背景 1. 讲故事 前段时间有个朋友找到我,说他们的程序有偶发崩溃的情况,让我帮忙看下怎么回事,针对这种 crash 的程序,用 AEDebug 的方式抓取一个便知,有了 dump 之后接下来就可 ...
- Prometheus-2:blackbox_exporter黑盒监控
黑盒监控blackbox_exporter 前边介绍有很多exporter可以直接将metrics暴露给Prometheus进行监控,这些称为"白盒监控",那些exporter无法 ...
- GO网络编程(二)
[[Go语言系列视频]老男孩带你21周搞定Go语言[全 242]] https://www.bilibili.com/video/BV1fD4y117Dg/?p=113&share_sourc ...
- 向量数据库Faiss的搭建与使用
向量数据库Faiss是Facebook AI研究院开发的一种高效的相似性搜索和聚类的库.它能够快速处理大规模数据,并且支持在高维空间中进行相似性搜索.本文将介绍如何搭建Faiss环境并提供一个简单的使 ...
- java端口被占用解决办法
- JMeter脚本报错:Cannot find engine named: 'javascript'的解决方法
本文将介绍如何解决在JMeter版本5.4.1下执行脚本时出现的错误信息"javax.script.ScriptException: Cannot find engine named: 'j ...
- Hexo博客yilia主题首页添加helper-live2d模型插件
插件效果 插件的github地址 插件作者提供了较为详细的安装步骤,我结合自己操作和图示,提供大家. 效果展示:红框内为2d模型,可以随鼠标移动而变化 安装模块: hexo博客根目录选择cmd命令窗口 ...
- Thread 和 ThreadPool 简单梳理(C#)【并发编程系列】
〇.前言 对于 Thread 和 ThreadPool 已经是元老级别的类了.Thread 是 C# 语言对线程对象的封装,它从 .NET 1.0 版本就有了,然后 ThreadPool 是 .Net ...
- Cobalt Strike 4.0系列教程
https://blog.csdn.net/weixin_45745344/article/details/109279097