`

thrift Mac下安装教程

阅读更多

一:安装最新版(自动安装)

最简单的是用homebrew进行安装

用brew安装的thrift版本是0.9的,but,我们项目中得thrift版本是0.8的,所以果断卸载掉。

 brew uninstall thrift。转到下面第二种方法安装thrift

二:手动安装0.8.0

先安装依赖。

http://www.jattcode.com/installing-autoconf-automake-libtool-on-mac-osx-mountain-lion/

  • 安装BOOST

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

命令:./bootstrap.sh,该命令用于生成bjam可执行文件,这个东西就是用来编译boost库

命令:sudo ./b2 threading=multi address-model=64 variant=release stage install 

  • 安装 libevent

下载:http://libevent.org/

命令:./configure --prefix=/usr/local

命令:make

命令:sudo make install 

  • 安装 Apache Thrift

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

编译命令:./configure --prefix=/usr/local/ --with-boost=/usr/local/lib --with-libevent=/usr/local/lib --without-ruby --without-python --without-perl --without-php

有一些不相关的code genorater可以不要了,不然又得会报错。。。

安装命令:sudo make install

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

thrift-0.8.0.tar.gz

安装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

 故需显式指定名字空间.

 三:测试

下面编写一个HelloWorld.thrift 来测试一下,内容如下:

namespace java com.xx.mobile.hotel.sc.demo

service HelloWorldService {
     string sayHello(1:string username)
}

执行:thrift -gen java HelloWorld.thrift 将在同级目录下生成gen-java/com/xx/mobile/hotel/sc/demo/HelloWorldService.java文件。

0
2
分享到:
评论

相关推荐

    mac thrift 0.9.3安装

    mac 想安装低版本thrift 0.9.3太难了,高版本比较简单 直接执行 brew install thrift.rb 即可安装

    thrift win7 安装与使用

    ### Thrift在Windows环境下安装与使用详解 #### 一、Thrift简介 Thrift是由Facebook开发的一款跨语言的服务开发框架,旨在支持可扩展的跨平台服务。它通过定义一套简单的数据类型和接口来描述服务,然后自动生成所...

    thrift安装

    编译完成后,Thrift工具将安装到系统的路径下,比如`/usr/local/bin`。你可以使用`thrift --version`来检查是否安装成功。接下来,你可以编写Thrift IDL(接口定义语言)文件,如`example.thrift`,并使用Thrift...

    thrift0.12.0 Ubuntu 安装包及安装教程.tar.xz

    thrift0.12.0 Ubuntu 安装包及安装教程.tar.xz

    thrift入门学习教程

    ### Thrift入门学习教程 #### 一、Thrift概述 Thrift是由Facebook开发并在2007年贡献给Apache基金会的一款开源项目。它的主要目的是解决跨平台、跨语言的系统间大数据量传输通信问题。在早期,Facebook面临着系统...

    thrift中文简易教程

    ### Thrift中文简易教程 #### 一、简介 Thrift 是一个跨语言的服务开发框架,由 Facebook 开发并开源。它允许开发者构建可扩展的跨平台服务,支持多种编程语言如 C++, Java, Python, PHP 等。Thrift 的核心特性...

    thrift初级入门教程

    ### Thrift初级入门教程 #### 一、简介 Thrift 是由 Facebook 开发的一款软件库和一组代码生成工具,旨在加速高效且可扩展的后端服务的开发与实现。通过抽象出不同编程语言中最常用的部分,并将其封装进一个通用库...

    虚拟机Centos安装thrift

    虚拟机Centos安装thrift涉及到的操作系统环境是Linux,尤其是Centos版本的操作系统。Thrift是一个跨语言的服务开发框架,它主要用于开发可扩展的跨语言服务。以下是根据提供的文件信息整理的详细知识点。 1. 下载...

    thrift入门教程+代码

    1. 安装Thrift编译器:根据操作系统和需求,从Apache Thrift官网下载相应版本的编译器。 2. 编写IDL文件:定义你的服务接口和数据类型。 3. 生成代码:运行Thrift编译器,指定输入的IDL文件和目标语言,编译器会...

    thrift 教程

    在“thrift 教程”中,你可能会学习到以下几个关键知识点: 1. **Thrift IDL(接口定义语言)**:Thrift 使用类似于C++或Java的语法来定义服务接口和数据结构。通过编写`.thrift`文件,你可以声明服务方法、数据...

    php_thrift_python安装测试记录

    对于CentOS系统,可以使用以下命令安装Thrift: ```bash sudo yum install thrift-devel ``` 然后,使用Thrift编译器将.thrift文件转换为PHP和Python的代码: ```bash thrift --gen php my_service.thrift thrift...

    linux下安装和测试thrift

    在Linux环境下安装和测试Thrift是一项技术性较强的工作,Thrift是一种开源的跨语言服务开发框架,它允许程序员定义服务接口和服务数据类型,然后自动生成客户端和服务器端的代码,以便于不同编程语言之间进行高效、...

    thrift-0.9.2.安装.

    thrift-0.9.2.安装.

    thrift安装文件

    thrift安装文件

    thrift在windows下生成C#代码

    在Windows环境下使用Thrift生成C#代码的过程主要分为以下几个步骤: 1. **安装Thrift编译器**: 首先,你需要下载Thrift编译器。压缩包中的`thrift-0.9.0.exe`是一个可执行文件,这表明你已经有了Thrift的Windows...

    python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错

    python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错 使用这个修改完成的Hbase类替换掉原来的Hbase类问题全部解决 主要是因为python版本兼容性带来的问题

    Apache Thrift 使用说明

    在 Ubuntu 系统下安装 Thrift,首先要确保安装了必要的依赖包,例如 libboost、libevent、automake、libtool、flex、bison 和 g++。这些包可以通过 `sudo apt-get install` 命令来安装。接着,从 Apache Thrift 的...

    C++(Qt)下的thrift的使用示例

    总的来说,“C++(Qt)下的thrift的使用示例”涵盖了在Qt环境下集成Thrift服务的基本步骤,包括安装依赖、编写IDL、生成代码、实现服务和客户端,以及利用Qt的特性来优化通信过程。理解并掌握这些知识,将有助于你在...

    qt 实现thrift的一个例子

    而在`cpp-thrift-uploadImage-server`目录下,你会看到服务端的代码,包括服务器的启动、连接处理以及`ImageService`的实现。 总结来说,这个例子展示了如何结合Qt的网络功能和Thrift的跨语言RPC机制来构建C++...

Global site tag (gtag.js) - Google Analytics