Thrift安装

thrift安装包结构

thrift框架用c++代码写成,主要的文件包为 compiler和lib compiler结构:
|-- cpp
|   `-- src
|       `-- generate
|        -- parse
|        main.cc
main.cc就是thrift的主程序
  // Generate it!
  generate(program, generator_strings);
从命令行输入的"thrift"开头的命令通过main.cc进行解析,通过generate函数找到对应语言的代码生成器,调用相关模块生成模板代码。 compiler核心之一为词法分析器 thriftl.cc和 yacc语法分析器thrifty.cc,.thrift数据结构和接口文件定义的内容利用这两个编译器做词法分析检查错误 compiler核心之二则是各个语言版本的t_language_generator.cc 根父类是t_generator 代码生成器 结合具体的语言,编译器+代码生成器 ==> 相应语言的代码 例如java的t_java_generator.cc
      分析demo.thrift的数据结构和service接口
            \|/
       生成模板代码
            \|/
       写入 .java文件

安装依赖

Basic requirements

  • g++ 3.3.5+
  • boost 1.33.1+

Requirements for building from SVN

  • GNU build tools: autoconf 2.59+ (2.60+ recommended), automake 1.9+, libtool 1.5.24+
  • pkg-config autoconf macros (pkg.m4) (Use MacPorts for Mac OS X)
  • lex and yacc (developed primarily with flex and bison)
  • libssl-dev

Language requirements

只需选择需要构建给定语言库的语言安装。

编译安装Thrift

如果你是从第一次从源代码库(svn)构建,将需要生成configure脚本。 (如果你下载一个tar包,则没有必要)从顶部的目录,

./bootstrap.sh

加载安装几个初始化文件
configure.ac:50: installing `./config.guess'
configure.ac:50: installing `./config.sub'
configure.ac:26: installing `./install-sh'
configure.ac:26: installing `./missing'

./configure

检测thrift的依赖库是否已安装,请注意Python库会忽略的 --prefix选项,只需安装Python的distutils来放至它的位置(通常是沿行的/ usr/ lib/ pythonX.Y/site - packages/)。如果你需要安装Python模块控制,设置PY_PREFIX变量。 (DESTDIR是尊重Python和C++。)

make && make install

这个命令将把thrift编译工具安装到本地linux环境中
/usr/local/lib/ thrift的动态链接库都会在这里 /usr/local/include 则是thrift库相关的头文件

生成代码

thrift -r 命令则会copy lib里对应语言的api包到生成的gen-java gen-py gen-php等目录中,当这些语言作为服务器或者客户端应用时,依赖thrift api包进行socket通信 thrift --gen 则生成指定代码种类的数据结构文件 完整示例
  thrift -r --gen demo.thrift

参考资料:http://wiki.apache.org/thrift/ThriftInstallation 下载站:http://archive.apache.org/dist/incubator/thrift/ 下载站:http://apache.etoak.com//incubator/thrift/  
posted @ 2011-10-28 13:28  残夜  阅读(826)  评论(0编辑  收藏  举报