Thrift0.8.0安装常见问题
2016-06-30 22:48
211 查看
项目要求thrift的版本为0.8.0,这是一个老版本,所以我们不能使用包管理器(例如brew)来进行安装了。
我们必须采用源码安装。
源码安装需要配置、编译、链接的过程,会有一些依赖条件,所以在编译之前我们首先要解决依赖关系。
需要安装的依赖如下:
安装boost库
(1).下载地址:http://www.boost.org/
(2). 先执行命令:./bootstrap.sh (该命令用于 )。 生成bjam可执行文件,这个东西就是用来编译boost库
(3). 再执行命令:sudo ./b2 threading=multi address-model=64 variant=release stage install 进行安装。
因为boost库比较大,编译的时间非常长,所以请大家耐心等待。
安装libevent库
(1).使用brew安装libevent, 执行命令: brew install libevent 。
在此处遇到问题:brew Could not symlink, /usr/local/include is not writable
解决方法: ,然后重新执行创建链接的命令 , sudo chown -R `whoami`:admin /usr/local/include
按照terminal中的提示retry : brew link [名称]即可。
出错原因: 安装程序对于/usr/local/include文件夹没有写权限,在安装程序尝试向该目录创建文件
链接时会出错,所以我们需要手动赋予用户对于该路径的写权限。
源码安装thrift
(1).源代码下载地址: 注意下载的版本 0.8.0, http://thrift.apache.org/
也可以尝试 这个链接直接下载。 thrift-0.8.0.tar.gz
(2).解压文件,执行编译命令:./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local
在这个过程中可能会出现一系列问题:
a. <openssl/err.h> 文件没有找到
问题原因:openssl库安装有问题,可能没有安装openssl,这个时候安装即可,
如果已经安装了openssl那么错误原因是因为:仅仅在用户目录安装了 openssl ,
没有将相应的文件链接添加到系统目录中,导致其他代码文件在饮用openssl中的
一些头文件时,出现了找不到的错误
解决方法:
首先执行 :brew install openssl ,如果openssl包已安装会提示,否则会进行安装
然后执行 :brew link --force openssl, 创建链接。
b.
多个源码文件报错 # 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
c.
cpp 测试代码 test/Benchmark.cpp 编译失败, shared_ptr ambigous , 用 boost::shared_ptr 替换 shared_ptr,
解决方法:vim /Users/chenhailong/Documents/chl/mytools/thrift-0.8.0/lib/cpp/test/Benchmark.cpp
全局替换shared_ptr为boost::shared_ptr。然后重新make install即可。
-------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------
到这,thrift安装我所遇到的问题都已经解决掉了,执行thrift -version命令显示出相应版本号为: 0.8.0
如果大家还遇到过其它的问题,欢迎添加。
我们必须采用源码安装。
源码安装需要配置、编译、链接的过程,会有一些依赖条件,所以在编译之前我们首先要解决依赖关系。
需要安装的依赖如下:
安装boost库
(1).下载地址:http://www.boost.org/
(2). 先执行命令:./bootstrap.sh (该命令用于 )。 生成bjam可执行文件,这个东西就是用来编译boost库
(3). 再执行命令:sudo ./b2 threading=multi address-model=64 variant=release stage install 进行安装。
因为boost库比较大,编译的时间非常长,所以请大家耐心等待。
安装libevent库
(1).使用brew安装libevent, 执行命令: brew install libevent 。
在此处遇到问题:brew Could not symlink, /usr/local/include is not writable
解决方法: ,然后重新执行创建链接的命令 , sudo chown -R `whoami`:admin /usr/local/include
按照terminal中的提示retry : brew link [名称]即可。
出错原因: 安装程序对于/usr/local/include文件夹没有写权限,在安装程序尝试向该目录创建文件
链接时会出错,所以我们需要手动赋予用户对于该路径的写权限。
源码安装thrift
(1).源代码下载地址: 注意下载的版本 0.8.0, http://thrift.apache.org/
也可以尝试 这个链接直接下载。 thrift-0.8.0.tar.gz
(2).解压文件,执行编译命令:./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local
在这个过程中可能会出现一系列问题:
a. <openssl/err.h> 文件没有找到
问题原因:openssl库安装有问题,可能没有安装openssl,这个时候安装即可,
如果已经安装了openssl那么错误原因是因为:仅仅在用户目录安装了 openssl ,
没有将相应的文件链接添加到系统目录中,导致其他代码文件在饮用openssl中的
一些头文件时,出现了找不到的错误
解决方法:
首先执行 :brew install openssl ,如果openssl包已安装会提示,否则会进行安装
然后执行 :brew link --force openssl, 创建链接。
b.
多个源码文件报错 # 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
c.
cpp 测试代码 test/Benchmark.cpp 编译失败, shared_ptr ambigous , 用 boost::shared_ptr 替换 shared_ptr,
解决方法:vim /Users/chenhailong/Documents/chl/mytools/thrift-0.8.0/lib/cpp/test/Benchmark.cpp
全局替换shared_ptr为boost::shared_ptr。然后重新make install即可。
-------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------
到这,thrift安装我所遇到的问题都已经解决掉了,执行thrift -version命令显示出相应版本号为: 0.8.0
如果大家还遇到过其它的问题,欢迎添加。
相关文章推荐
- 基于HBase Thrift接口的一些使用问题及相关注意事项的详解
- Thrift框架学习整理
- sparksql与hive整合
- tns cluster 简介
- 使用Nginx代理thrift NIO实现SSL链路加密
- 用thrift实现多语言相互调用
- Thrift的required和optional源码分析
- Python 通过thrift接口连接Hbase读取存储数据
- Apache Thrift原理及windows使用
- 运行apache thrift的错误解决
- dubbo_rpc包中thrift协议的使用过程
- dubbo_rpc包中thrift协议的使用过程
- PHP调用python
- ajax应用
- Thrift学习
- Thrift 实例 Helloworld
- Thirft框架介绍
- Ubuntu安装Thrift连接Hive
- Java版的各种Thrift server实现的比较
- thrift学习第二步,一个简单的双向通信demo以及原理讲解,以及注意事项