最近准备学习leveldb的源码,在安装时出现了一些问题
按照官方的安装步骤,在执行以下的命令时遇到了错误
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
找到出错的第一个位置
error: ‘is_trivially_copy_constructible’ is not a member of ‘std’
经搜索,发现这是由于gcc/g++的版本过低导致。参考链接。
因此升级gcc和g++的版本,参考链接
首先添加安装gcc和g++时所需的源
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
更新
sudo apt-get update
安装对应的gcc和g++版本
sudo apt-get install gcc-5 g++-5
此时用gcc -v和g++ -v查看版本发现其版本还是原来的版本 ,解决方法是重新建立gcc和g++的软链接
sudo rm gcc
sudo rm g++
sudo ln -s /usr/bin/gcc-5 gcc
sudo ln -s /usr/bin/g++-5 g++
至此gcc/g++的升级完成,可以使用gcc -v,g++ -v验证版本。
重新编译leveldb,首先切换到leveldb的build目录
然后执行
cmake --build .
ok, 成功编译,爽。