一、预置条件
1、cmake要升级到3.5版本以上。
cmake的升级参考mark:centos升级cmake步骤_CrystalShaw的博客-CSDN博客
2、需要升级GCC版本到4.9版本以上,否则会出现如下错误。
升级后编译之前需要先clear一下。否则残留的so可能捣乱了。
error: no matching function for call to ‘StrFormat(const char [5], const int&, double&)
GCC升级步骤:
1、安装centos-release-scl
sudo yum install centos-release-scl
2、安装devtoolset,注意,如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推
sudo yum install devtoolset-8-gcc*
3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
scl enable devtoolset-8 bash
4、查看gcc版本
gcc -v
二、下载并编译abseil-cpp
1、创建目录
mkdir Source && cd Source
2、下载代码
git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
3、创建编码及安装目录
mkdir build && mkdir install && cd build
4、生成makefile
cmake -DCMAKE_INSTALL_PREFIX=../install/ DABSL_PROPAGATE_CXX_STD=ON -DABSL_PROPAGATE_CXX_STD=ON -DCMAKE_CXX_STANDARD=11 ..
5、编译及安装
make
make install
备注说明:
/absl/base/policy_checks.h:77:2: error: #error "C++ versions less than C++11 are not supported."
#error "C++ versions less than C++11 are not supported."
编译时需要指定使用c11,有两种方法指定:
1、在CMakeLists.txt文件中增加add_definitions(-std=c++11)
2、在cmake命令行中增加CMAKE_CXX_STANDARD=11编译选项
cmake CMAKE_CXX_STANDARD=11 ..