no member named ‘make_unique‘ in namespace ‘std‘

使用CentOS 7 系统自带编译器4.8.5,编译一个项目,项目的有一个编译选项是-std=c++14,报错:

no member named 'make_unique' in namespace 'std'

根据GCC 4.9 Release Series — Changes, New Features, and Fixes- GNU Project 可以知道,到gcc的4.9版本之后才支持-std=c++1y选项。

查找gcc的版本,当前已经到了8.2.0版本了,果断直接升级到8.2.0。升级过程可以参考:

第一步,到Index of /gnu/gcc,选择要下载的版本。这里以8.2.0为例

wget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz

第二步,选择一个路径解压:tar -xvf gcc-8.2.0.tar.xz

第三步, 进入解压的路径:cd gcc-8.2.0   下载gcc的依赖

   ./contrib/download_prerequisites

第四步,编译

在 gcc-8.2.0 路径下,执行命令:mkdir build && cd build

然后执行:../configure --prefix=/disk4/gcc/gcc-8.2.0

最后,执行 make -j4 进行编译

第五步,安装 

make install

第六步,设置环境变量

将当前安装的版本设置为默认的编译器:

vim ~/.bash_profile

export PATH=/disk4/gcc8/gcc-8.2.0/bin:$PATH

因为需要使用新版本的头文件和库,所以,需要将新版本的头文件和库的路径添加到环境变量:

export C_INCLUDE_PATH=/disk4/gcc8/gcc-8.2.0/include
export LD_LIBRARY_PATH=/disk4/gcc8/gcc-8.2.0/lib:/disk4/gcc8/gcc-8.2.0/lib64

保存退出后,再执行 source ~/.bash_profile

第七步,确认环境变量设置成功

执行 export | grep PATH, 看第六步设置的环境变量是否生效。

然后执行 gcc -v,查看当前使用的gcc的版本。

再次编译项目,成功!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值