Folly库的安装

Yeolar   2014-12-25 20:55  

Folly (Facebook Open-source LibrarY) 是Facebook开源的一个C++库。以高性能和实用性为目标而打造,作为标准库和Boost的补充,满足应用领域的需求。

Folly库的一大特点是完全地面向C++11,以C++11的特性和标准库为基础而打造。所以如果你正在学习C++11/把C++11引入你的代码中/寻找C++11的库,一定不能错过它。

目前folly的依赖包括:

  • boost - C++的准标准库
  • gflags - Google的命令行flag解析库
  • glog - Google的日志库
  • gtest - Google的单元测试库
  • gmock - Google的C++ mock库
  • double-conversion - V8引擎中使用的浮点数和字符串转换库
  • jemalloc - 内存优化组件
  • lz4 - 压缩算法库
  • lzma - 压缩算法库
  • snappy - 压缩算法库
  • zlib1g - 压缩算法库
  • libevent - 高性能异步网络库
  • libssl - SSL加密库
  • libdwarf - DWARF调试信息处理库 (experimental)
  • libunwind - 程序中调用链的检测库 (experimental)

以Debian Wheezy为例,说一下这些依赖的安装。

可以从包管理器中安装的包括:

 1 # apt-get install libboost-all-dev # boost
 2 # apt-get install libgtest-dev     # gtest
 3 # apt-get install google-mock      # gmock
 4 # apt-get install libjemalloc-dev  # jemalloc
 5 # apt-get install liblzma-dev      # lzma
 6 # apt-get install libsnappy-dev    # snappy
 7 # apt-get install zlib1g-dev       # zlib1g
 8 # apt-get install libevent-dev     # libevent
 9 # apt-get install libssl-dev       # libssl
10 # apt-get install libdwarf-dev     # libdwarf

如果选择从源码包安装boost,执行:

1 $ ./bootstrap.sh
2 $ ./b2
3 # ./b2 install

包管理器中的gflags使用的命名空间是 google ,为了兼容Folly使用的 gflags ,需要从最新的源码包安装:

1 $ mkdir build && cd build
2 $ cmake ..
3 $ make
4 # make install

glog从源码包安装即可(注意需要先安装libunwind,见下):

1 $ ./configure && make
2 # make install

gtest最好编译一份静态库放到库路径下,参考 GTest入门 。google-mock类似,参考 Google Mock简易指南

double-conversion可以使用CMake安装。有个问题是自带的 CMakeList.txt 生成静态库没有使用 -fPIC 编译,可以在 CMakeList.txt 中加一行 add_definitions(-fPIC) 解决:

1 $ mkdir build && cd build
2 $ cmake ..
3 $ make
4 # make install

lz4可以从源码包安装:

1 $ make
2 # make install

libunwind在包管理器中的版本太旧,需要下载最新版安装(为了包含 unw_backtrace ):

1 $ ./configure && make
2 # make install

folly用到了诸如 chrono 之类的C++11库,必须使用GCC 4.8以上版本,才能够完整支持这些用到的C++11特性和标准库。安装GCC 4.8版本比较好的方式是从源码编译安装,保证足够的灵活性。

首先安装依赖:

1 # apt-get install libgmp-dev libmpfr-dev libmpc-dev

编译安装GCC 4.8:

1 $ ./configure --enable-languages=c,c++ --program-suffix=-4.8 --disable-multilib --enable-shared --enable-linker-build-id --with-system-zlib --without-included-gettext --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
2 $ make -j 8
3 # make install
4 # cp host-x86_64-linux-gnu/libiberty/pic/libiberty.a /usr/local/lib/  # 使用PIC版本替换

完成以上步骤就基本满足了folly的安装要求。folly库本身的编译安装参考自带的脚本即可。

http://www.yeolar.com/note/2014/12/25/folly-installation/

http://www.yeolar.com/note/2014/12/25/folly-installation/