simplessd standalone gcc环境配置

Before initiating the download of SimpleSSD-Standalone, ensure that you have a C/C++ compiler installed, which supports both C++11 and the ‘<regex>’ library. For Windows users, Microsoft Visual C++ 2015 (MSVC 2015) or a more recent version will suffice. If you are using a Linux system, you should have gcc/g++ version 4.9 or newer installed.

如题,安装SimpleSSD-Standalone要求Centos7中gcc版本大于4.9,但Centos7中默认gcc版本为4.8.5,故需要重新安装更高版本

一、建议选择更高版本的gcc安装,gcc5.4.0仍然会出现不支持c++11的情况

二、步骤:

1.下载gcc-7.3.0

cd /usr/local/src
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

2.解压&进入目录

tar -xf gcc-7.3.0.tar.gz
cd gcc-7.3.0
./contrib/download_prerequisites

3.建立一个文件夹存放编译文件

mkdir gcc-build-7.3.0
cd gcc-build-7.3.0

4.配置

参数解释:
–enable-checking=release 增加一些检查,也可以–disable-checking生成的编译器在编译过程中不做额外检查
–enable-languages=c,c++ 你要让你的gcc支持的编程语言
–disable-multilib 取消多目标库编译(取消32位库编译)

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
5.编译(比较耗时)
make
6.安装
sudo make install
7.查看版本
gcc - v
8.查找编译 gcc 时生成的最新动态库
find / -name "libstdc++.so*"
9.将找到的动态库 libstdc++.so.6.0.21 复制到/usr/lib64
cp /usr/local/src/gcc-5.4.0/gcc-build-5.4.0/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64
10.切换工作目录至/usr/lib64,删除原来的软连接, 将默认库的软连接指向最新动态库。
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6

11.最后,需要把原来的GCC卸载,换成7.3.0版本的
找到已安装的gcc和gcc-c++包

rpm -q gcc
rpm -q gcc-c++

删除已经安装低版本

rpm -e [包名]

包名为上一步中显示的包,形如:

gcc-4.8.5-16.el7_4.2.x86_64
gcc-c++-4.8.5-16.el7_4.2.x86_64

那就删除吧

rpm -e gcc-4.8.5-16.el7_4.2.x86_64
rpm -e gcc-c++-4.8.5-16.el7_4.2.x86_64

在运行rpm -e gcc-4.8.5-16.el7_4.2.x86_64命令时会出现报错:


[root@localhost z**b]# rpm -e gcc-4.8.5-44.el7.x86_64
error: Failed dependencies:
	gcc = 4.8.5-44.el7 is needed by (installed) libquadmath-devel-4.8.5-44.el7.x86_64
	gcc is needed by (installed) systemtap-devel-4.0-13.el7.x86_64
	gcc = 4.8.5 is needed by (installed) libtool-2.4.2-22.el7_3.x86_64
	gcc = 4.8.5-44.el7 is needed by (installed) gcc-gfortran-4.8.5-44.el7.x86_64

说明卸载旧版本的 GCC 可能会导致一些依赖关系问题,因为其他已安装的软件可能依赖于旧版本的 GCC,所以rpm -e gcc-4.8.5-16.el7_4.2.x86_64命令可以不执行,而只使用rpm -e gcc-c++-4.8.5-16.el7_4.2.x86_64命令删除gcc-c++-4.8.5-16.el7_4.2.x86_64包。

三、安装完成后安装simplessd standalone环境时运行到下面的指令

cmake -DDEBUG_BUILD=off .

仍然出现报错,

Make Error at CMakeLists.txt:67 (message):
  GNU g++ < 4.9 does not support <regex>.Please update your compiler.


-- Configuring incomplete, errors occurred!
See also "/home/zhourb/simplessd-standalone/CMakeFiles/CMakeOutput.log".

为了解决这个问题,你可以尝试以下步骤:

1.清理 CMake 缓存:首先尝试清理 CMake 缓存,以确保它不会使用旧的配置。在你的项目目录中运行以下命令

rm -rf CMakeFiles CMakeCache.txt

2.检查 PATH 环境变量: 首先,确保新版本的 GCC 所在的目录在 PATH 环境变量中。你已经提到你的 GCC 安装在 /usr/local/bin,你可以运行以下命令来确认:

echo $PATH

确保 /usr/local/bin 在 PATH 中,并且在旧版本之前。如果不在,你可以将其添加到 PATH:

export PATH=/usr/local/bin:$PATH

3.检查 CMake 的搜索路径: 确保 CMake 可以找到新版本的 g++。你可以尝试使用 -DCMAKE_CXX_COMPILER 参数明确指定 CMake 使用的 C++ 编译器,如下所示:

cmake -DDEBUG_BUILD=off -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ .

4.检查 CMake 版本: 确保你正在使用支持 C++11 的 CMake 版本。你可以运行以下命令来检查 CMake 版本:

cmake --version

最后问题解决。

参考以下文章,不胜感激。

C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++) ERROR: Did not find a new enough ass - 代码先锋网 (codeleading.com)

GCC 7.3.0编译安装-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值