centos 上更新g++版本

本文介绍了如何在CentOS上升级g++到4.7版本,包括安装步骤和设置环境变量的方法,如修改/etc/profile和~/.bashrc文件,以及通过echo命令检查PATH是否正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近要用结巴分词开源库的c++版本,由于其推荐使用gcc4.6以上的版本,所以我不得不对我的gcc进行升级。

幸好我是在centos上进行升级,而centos上有,并且最简单的方法是升级到g++4.7版本。下面就说说是如何升级g++的:

打开终端,依次输入以下命令:

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo 
yum --enablerepo=testing-devtools-6 install devtoolset-1.0
上面的三行命令就表示安装完成。注意devtoolset其实是一个软件包,其包含了gcc、gdb、binutils、elfutils、SystemTap、Valgrind、OProfile和dwz。

如果你只需要安装gcc,那么你可以指定只安装gcc:

yum -y --enablerepo=testing-1.1-devtools-6 install devtoolset-1.0-gcc devtoolset-1.0-gcc-c++

由于centos一般是作为服务器使用,我们一般不会轻易的改变gcc的版本。因此这里安装的目录为:/opt/centos/devtoolset-1.0/root/。你可以看到这里面有许多的文件。

要开始使用g++,必须将它的路径export出来,所以继续在终端中输入:

export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH


export出来之后,你就可以试试现在的g++版本了。在终端中输入:

g++ --version


这是终端输出的是:

g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
如果你想一直使用该版本的g++,那么可以将g++设置到系统的环境变量中。不过一定要慎重,可能会导致依赖问题。修改方法有:

方法1: 使用/opt/centos/devtoolset-1.0/root下enable文件

echo 'source /opt/centos/devtoolset-1.1/enable' >> ~/.bash_profile

source /opt/centos/devtoolset-1.1/enable

推荐使用gcc默认给出的环境变量设置脚本‘/opt/centos/devtoolset-1.0/enable ’,将其加到有需要用户的环境变量中。


方法2:修改profile文件:

#vi /etc/profile 
在里面加入:
export PATH="/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH"


方法3: 修改.bashrc文件:

# vi /root/.bashrc
在里面加入:
export PATH="/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH"

注意:这3种方法一般需要重新注销系统或者source之后才能生效,最后可以通过echo命令测试一下:
# echo $PATH
看看输出里面是不是已经有了/opt/centos/devtoolset-1.0/root/usr/bin/这个路径了。


### 查看 g++ 编译器版本的方法 在 CentOS 系统中,可以通过以下命令查看当前已安装的 `g++` 或 `gcc` 的版本: ```bash g++ --version ``` 或者使用更详细的选项来获取完整的版本信息以及路径等细节: ```bash g++ -v ``` 如果未安装 `g++`,可以尝试通过包管理工具 `yum` 来安装默认版本的 GCC 和 G++ 工具链。执行如下命令完成安装[^2]: ```bash sudo yum install gcc-c++ ``` --- ### 自定义版本g++ 安装教程 对于需要更高版本的 `g++` 用户来说,可以选择手动编译安装最新版 GCC/G++。以下是具体操作流程说明。 #### 准备阶段 1. **下载依赖库** 手动编译 GCC 需要一些必要的依赖项,可通过以下命令安装这些依赖项: ```bash sudo yum groupinstall "Development Tools" sudo yum install gmp-devel mpfr-devel libmpc-devel ``` 2. **创建临时目录用于构建 GCC** 创建一个新的工作目录以避免污染现有环境,并切换到该目录下进行后续操作。 ```bash mkdir ~/build-gcc && cd ~/build-gcc ``` 3. **下载目标版本的 GCC 源码压缩文件** 假设我们希望安装的是 GCC 7.x 版本,则可以从官方站点下载对应 tarball 文件并解压它。 ```bash wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz tar xf gcc-7.3.0.tar.gz cd gcc-7.3.0 ``` 4. **准备子组件 MPC, MPFR 及 GMP** 如果系统缺少上述三个数学支持库中的任何一个,都需要单独下载它们并将源代码放置于同一级目录结构内以便自动检测识别。例如: ```bash # 返回上级目录再依次处理各模块 cd .. wget https://ftp.gnu.org/gnu/mpfr/mpfr-4.0.1.tar.gz tar xf mpfr-4.0.1.tar.gz wget https://ftp.gnu.org/gnu/gmp/gmp-6.2.0.tar.bz2 tar jxf gmp-6.2.0.tar.bz2 wget https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz tar xf mpc-1.2.1.tar.gz ``` 5. **配置与编译过程** 开始正式设置新版本GCC之前先建立独立的目标输出位置以免覆盖原有系统自带程序;接着运行configure脚本来指定参数最后启动make进程完成整个组装动作。 ```bash ./contrib/download_prerequisites mkdir build && cd build ../configure --enable-checking=release --enable-languages=c,c++ \ --disable-multilib --prefix=/opt/gcc-7.3.0 make -j$(nproc) sudo make install ``` 6. **更新 PATH 路径变量** 将新建好的二进制可执行档加入至shell会话里立即生效的方式修改环境设定档案 ~/.bashrc 添加下面这一行内容重新加载即可正常使用刚安裝完毕的新版本G++了! ```bash echo 'export PATH=/opt/gcc-7.3.0/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` 验证是否成功替换成了自定版本号: ```bash g++ --version ``` 此时应该能看到预期的结果显示为刚才所装入的那个特定发行编号的信息列出了。 --- ### 注意事项 当遇到链接错误提示类似于 `/usr/bin/ld: skipping incompatible ...libgcc_s.so...when searching for -lgcc_s` 这样的警告消息时,通常是因为不同架构间的共享对象不匹配引起的问题。解决办法之一就是确保所有参与运算环节里的部件都保持一致性的位元宽度(即要么全是32-bit要么全都是64-bit)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值