mac下安装thrift

使用brew安装

使用brew install thrift会安装最新版本的thrift,目前是0.9。

手动安装

安装基本组件

1、安装BOOST

下载:http://www.boost.org/

./bootstrap.sh
sudo ./b2 threading=multi address-model=64 variant=release stage install

2、安装 libevent

下载:http://libevent.org/

./configure --prefix=/usr/local 
make
sudo make install

3、针对不同语言,需要安装不同的组件

比如java库,需要安装java、ant,否则在安装thrift时,将不会安装该语言的代码生成器。

包括BOOST和libevent,均可以使用brew进行安装。


4、安装 Apache Thrift

下载:http://thrift.apache.org/

./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local
有些不需要的lib不用编译,避免报错。

./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local --without-erlang --without-ruby --without-php
上面剔除了erlang、ruby、php等语言。

make
sudo make install


thrift -version 可以查看安装是否成功和版本。

安装8的时候会遇到如下问题,并按如下解决:

Osx 10.9 是比较新的系统, 从这个版本开始, 系统默认编译器从GCC 改为 Clang(GCC -v 一下, 给的是clang 的提示). 

Thrift 0.8  代码相对又比较老, 在新的编译器上遇到了下列一些问题.

问题1 :

  多个源码文件报错 # include <tr1/functional>, file not found, 改为 # include <boost/tr1/functional.hpp> 解决.

  需要修改以下文件:

  • lib/cpp/src/concurrency/ThreadManager.h  line:24
  • lib/cpp/src/async/TAsyncChannel.h line:23
  • lib/cpp/src/async/TAsyncChannel.cpp line:21
  • lib/cpp/src/async/TAsyncProcessor.h line:23
  • lib/cpp/src/async/TAsyncBufferProcessor.h line:23

 原因:  在我试验的环境下, 此头文件有后缀名/usr/local/include/boost/ tr1/functional.hpp

问题2:

  cpp 测试代码 test/Benchmark.cpp 编译失败,  shared_ptr  ambigous , 用 boost::shared_ptr 替换 shared_ptr,

  错误消失.

  原因: Clang 支持 C++ 11, 其 标准库自带 shared_ptr(std::shared_ptr, 参考 http://zh.cppreference.com/w/cpp/memory/shared_ptr

 故需显式指定名字空间.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值