CentOS 7 安装Thrift-0.10.0(亲测) 有更新!

  aluaa

1. 升级所有软件包

yum -y update

2.安装开发工具

yum -y groupinstall “Development Tools”

3.安装autoconf/automake/bison/boost

autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile GNU
bison 是属于 GNU 项目的一个语法分析器生成器。
bison 把一个关于“向前查看 从左到右 最右”(LALR) 上下文无关文法的描述转化成可以分析该文法的 C 或 C++ 程序。
它也可以为二义文法生成 “通用的 从左到右 最右” (GLR)语法分析器。(from百度百科

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar -zxvf autoconf-2.69.tar.gz
cd autoconf-2.69 ./configure --prefix=/usr
make
make install
wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
tar -zxvf automake-1.14.tar.gz
cd automake-1.14 ./configure --prefix=/usr
make
make install
wget http://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz
tar -zxvf bison-2.5.1.tar.gz
cd bison-2.5.1 ./configure --prefix=/usr
make
make install
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz 
tar -xvf boost_1_59_0.tar.gz 
cd boost_1_59_0 
./bootstrap.sh 
./b2 install

4. 安装C++依赖

yum -y install libevent-devel zlib-devel openssl-devel

5.安装thrift ,不要用git包,直接到官网上下载tar包

wget http://apache.fayea.com/thrift/0.10.0/thrift-0.10.0.tar.gz 
tar -xvf thrift-0.10.0.tar.gz 
cd thrift-0.10.0 
./configure --with-lua=no 
make && make install

6.安装错误及解决方案

1.找不到libboost_unit_test_framework.a;
解决:源码本地编译boost安装;

2.gcc宏编译问题__STDC_FORMAT_MACROS
解决:不要用git包,昂~,因为使用git包在安装的时候会报

src/thrift/server/TNonblockingServer.cpp:460:16: 
错误:expected ‘)’ before ‘PRIu32’
"(%" PRIu32 " > %" PRIu64
                ^

7.测试下thrift是否安装成功,使用thrift官网的例子

在/home/thrift_test目录下创建user.thrift文件,内容如下:

struct UserProfile { 1: i32 uid, 2: string name, 3: string blurb
}
service UserStorage { void store(1: UserProfile user),
UserProfile retrieve(1: i32 uid)
}

执行thrift –gen php user.thrift

在当前目录下生成一个目录gen-php,打开gen-php目录,有两个文件,如下

[root@MiWiFi-R3-srv thrift_test]# cd gen-php/ [root@MiWiFi-R3-srv gen-php]# ll
总用量 16
-rw-r–r–. 1 root root 3258 7月 29 20:30 Types.php -rw-r–r–. 1 root root 10359 7月 29 20:30 UserStorage.php

到此,thrift安装成功