首页 程序笔记 linux中升级gcc的版本

linux中升级gcc的版本

前言

最近在一个比较古老的linux(centos6.5)中编译一个动态库,遇到编译不过的问题,错误信息为:‘aligned_alloc’ was not declared in this scope,意思是aligned_alloc这个函数找不到,在其他linux这个动态库是能正常编译的,后来查询了一下,发现是gcc的版本太低导致,升级到至少7.2才行。以下就记录一下如何升级gcc的版本到7.2

下载和解压

在任意有权限的目录执行以下命令:

wget http://ftp.gnu.org/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz                     #下载gcc源码
tar -xvf gcc-7.2.0.tar.gz        # 解压源码

编译和安装

继续执行以下命令:

cd gcc-7.2.0
./contrib/download_prerequisites     #下载依赖库
mkdir gcc-temp                      #建立编译输出目录
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib   #生成makefile文件
make -j4                            #编译(j为核心数,速度会更快,这步极为耗时,建议睡前操作)
sudo make install                    #安装

替换旧的gcc

当前版本位于/usr/bin/gcc,执行以下命令

update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-pc-linux-gnu-gcc 40
# 倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级
mv /usr/bin/gcc /usr/bin/gcc.bak #将原本的gcc重命名(删除亦可)
ln -s /usr/local/bin/x86_64-pc-linux-gnu-gcc /usr/bin/gcc

查看当前版本号(可能需要重启)

gcc -v

显示为7.2.0即升级成功。

1

站心网

前言 最近在一个比较古老的linux(centos6.5)中编译一个动态库,遇到编译不过的问题,错误信息为:‘align..

为您推荐

ASP.Net Core WebApi几种版本控制对比

一、版本控制的好处:(1)有助于及时推出功能, 而不会破坏现有系统。(2)它还可以帮助为选定的客户提供额外的功能。API 版本控制可以采用不同的方式进行控制,方法如下:(1)在URL 中追加版本或作为查询字符串参..

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?今天我决定写一篇关于如何选择L..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

.Net各版本多线程使用原理和实践

多线程基本概念进程:程序在服务器上运行时,占据的计算资源合集,称之为进程。进程之间不会互相干扰,进程间的通信比较困难(分布式)。线程:程序执行的最小单位。线程也包含自己的计算资源,线程是属于进程的,一..

选择.NET6长期支持版本还是最新的.NET版本?

这取决于您的具体需求。如果您需要一个稳定可靠的平台来开发生产应用程序,那么您应该选择 .NET 6 长期支持版本。.NET 6 长期支持版本将获得三年的安全更新和两年的功能更新,因此您可以放心地将其用于生产应用程序..

TortoiseSVN搭建本地版本控制

一个人做一个项目,没有服务器进行代码管理,可以使用TortoiseSVN在自己的电脑中进行版本管理。首先需要建立一个版本库例如现在E盘创建一个空的文件夹E:\LocalProjects然后右键文件夹选择Create repository here然后..

linux shell的几种截取字符串的方法

写shell脚本时,免不了需要截图字符串,这里有几种截取字符串的方法供参考。假设shell中有字符串变量:str=aabbccddeeffaabbccddeeff1. 符号“#“截取,删除指定字符串最左边一次匹配位置左边的字符串,保留右边字符..

linux的Shell脚本中如何判断某个命令是否存在

我们在写shell脚本时,有时候需要根据某个命令是否存在来决定是否执行某些操作,可以有两种方法来判断命令是否存在,参考代码如下:判断linux命令是否存在,方法1:#!/bin/bashif which mycmd /dev/null 21; thenech..

linux中Qt工程编译报错: error: 找不到 -lGL

编译一个Qt项目报错:Qt error: 找不到 -lGL这是因为 Qt编译器找不到 OpenGL 的动态链接库(libGL.so)。 在大部分 Linux 发行版中都是默认安装OpenGL,包括 Ubuntu、CentOS 等,找不到该链接库一般都是路径不对,如..

linux中USB设备的绑定和解绑(类似于Windows中disable和enable)

前言在Linux中要通过命令实现USB设备的enable和disable,类似于在Windows设备管理器中禁用再启动设备一样,在某些场景,如调试USB固件时,重新加载了固件时,又不希望物理上插拔设备时,可以采用绑定和解绑这种方式..

React @testing-library UserEvent.paste用法更新到14版本后不生效

把testing-library从13.5.0更新到了14.1.1,发现原来paste的case过不了。官网上V13的用法和Demo是这样的:paste(element, text, eventInit, options)test('shouldpastetextininput',()=>{render(<MyInput/>)..

linux的shell脚本中如何在一个字符串中查找指定字符串是否存在

摘要在Linux中写Shell脚本,经常会遇到需要在字符串中查找和判断指定的子字符串是否存在,通配符,正则表达式,grep命令等都是常用的方法,以下整理几种shell脚本查找字符串的方法示例。利用grep命令示例代码如下:s..

.NET8是长期维护版本吗?

.NET 8 是长期维护版本。.NET 的版本分为标准期限支持 (STS) 和长期支持 (LTS) 两种。STS 版本以偶数年为单位发布,LTS 版本以奇数年为单位发布。所有版本的质量完全相同,唯一的区别是支持长度。LTS 版本可获得 3 ..

C# WebSocket Client在linux连接失败

在Linux上,C#的WebSocket客户端连接失败可能有多种原因。以下是一些常见的原因:连接字符串不正确。 连接字符串必须包含以下信息:WebSocket服务器的地址WebSocket服务器的端口号WebSocket服务器的协议防火墙或代理..

linux编译报错:/usr/include/c++/7/cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory

今天在Linux中编译C/C++的程序遇到如下错误:make[3]: Leaving directory /home/v2ray/lede/feeds/luci/applications/luci-app-upnptime: package/feeds/luci/luci-app-upnp/compile#1.74#1.44#3.88In file included..

Linux下编译libxml源码时,报错:/usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:4: error: call to '__open...

问题描述在Linux中编译libxml的源码时,报错如下:In function open,inlined from xmlNanoHTTPSave at nanohttp.c:1185:12:/usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:4: error: call to __open_missing_mode ..

vscode中通过ssh远程连接linux报错:Bad owner or permissions on C:\\Users\\用户名/.ssh/config

问题描述在Windows10系统中,由于切换了用户,导致在使用vscode通过ssh连接远程的linux系统是报错Bad owner or permissions on C:\Users\用户名/.ssh/config,删掉这个config文件都不行。解决方法下载OpenSSH:下载..

linux中bash shell的wait命令详解

前言linux bash shell中的wait命令是一个等待给定操作完成并返回等待命令的退出状态的命令,由于wait命令会影响当前的shell执行环境,因此它在大多数shell中作为内置命令实现。在本文中,我们将探讨linux bash shell..

如何从 Ubuntu 22.04 升级到 Ubuntu 23.10

Ubuntu 23.10 是 Ubuntu 24.04 LTS(长期支持版本)之前的最后一个临时版本。在这个版本中,Ubuntu 操作系统背后的团队旨在提供与 Ubuntu 24.04 版本中预期相同的主要更改和功能。这让您有机会试用它们,并与开发团..

.NET9 Alpha版本有哪些更新?

.NET 9 Alpha 版本于 2023 年 11 月发布,包含了对 C#、F#、.NET MAUI、ASP.NET Core、Entity Framework Core、Windows Forms、WPF 和 Blazor 等多项核心组件的更新和改进。此外,该版本还修复了许多 bug 并提升了性..

发表回复

返回顶部