thift是facebook的rpc调用框架,和google protobuf相比,额外多提供了rpc server和client的框架。
1.下载
http://www.cygwin.com/setup.exe
2.双击setup.exe
3.按照安装提示“下一步”
4.选择从“互联网”安装:
5.选择安装的路径为d:\Cygwin,选择本地临时目录d:\Cygwindown,用于存放下载的软件;选择连接互联网的方式,选“直接连接”。
7.根据安装提示,选择需要安装的软件包,需要选择:
- Cygwin or MinGW
- GNU build tools (autoconf 2.60, automake 1.10, libtool 1.5.24)
- boost 1.33.1+
- g++ 4.0+
- bison 2.3-1
- boost 1.33.1-4
- boost-devel 1.33.1-4
- flex 2.5.33-1
- pkgconfig
- libtool
在devel目录下选择这些包,
另外还需要选 make (the GNU version of ‘make’ utility ),
否则在最后执行 make的时候回被提示错误:
bash: make: command not found)
完成安装。
( D:\cygwindown\http%3a%2f%2fwww.cygwin.cn%2fpub%2f\release 下面一共有以下文件夹
aalib
alternatives
apache2
apr1
aprutil1
ash
audiofile
autoconf
automake
autotrace
base-files
base-passwd
bash
binutils
bison
boost
bzip2
cmake
coreutils
cpio
crypt
curl
cygutils
cygwin
cygwin-doc
db
diffutils
docbook-xml412
docbook-xsl
e2fsprogs
editrights
esound
expat
expect
fcgi
file
findutils
flac
flex
fontconfig
freeglut
gawk
gcc
gcc-mingw
gdbm
gettext
ghostscript
glib
gmp
GNOME
gnutls
GraphicsMagick
grep
groff
gtk2-x11
guile
gzip
icu
ImageMagick
jasper
jbigkit
jpeg
lapack
lcms
less
libao
libEMF
libfpx
libgcrypt
libglade2
libgpg-error
libiconv
liblzo2
libmcrypt
libmng
libogg
libpng
libsmi
libssh2
libtasn1
libtextcat
libtool
libungif
libvorbis
libwmf
libxml2
libxslt
login
lzma
m4
make
man
ming
mingw-runtime
minires
ncurses
neon
opencdk
openjade
OpenSP
openssl
pango
patch
pcre
perl
pkg-config
pkgconfig
plotutils
popt
postgresql
pstoedit
python
qhull
readline
rebase
run
sed
speex
sqlite3
t1lib
tar
tcltk
tcp_wrappers
termcap
terminfo
tetex
texinfo
tiff
tzcode
unzip
util-linux
uw-imap
w32api
wget
which
X11
xdelta
xerces-c
zlib
_obsolete
_update-info-dir)
10.解压到D:\Java\thrift-20080411p1
11.启动cygwin
$ cd d:/Java/thrift-20080411p1
转到thrift目录。
12.运行
./bootstrap.sh
运行结果为:
lizongbo@lizongbo-pc /cygdrive/d/Java/thrift-20080411p1
$ ./bootstrap.sh
configure.ac: warning: missing AC_PROG_AWK wanted by: test/Makefile:133
configure.ac: warning: missing AC_PROG_RANLIB wanted by: test/Makefile:196
configure.ac:7: installing `./install-sh'
configure.ac:7: installing `./missing'
compiler/cpp/Makefile.am: installing `./depcomp'
configure.ac: installing `./ylwrap'
lizongbo@lizongbo-pc /cygdrive/d/Java/thrift-20080411p1
$
13.运行
./configure
耐心等待命令执行完成。
14.开始make,
$ cd compiler/cpp/
(要先装make包,否则会提示make: command not found)
耐心等待编译完成。
生成编译器文件在:
D:\Java\thrift-20080411p1\compiler\cpp\thrift.exe
14.用文本编辑器打开
D:\Java\thrift-20080411p1\tutorial下的\tutorial.thrift和shared.thrift,
将tutorial.thrift第一行的#!/usr/local/bin/thrift -cpp -java -py -php -xsd -perl
改成#!/cygdrive/d/Java/thrift-20080411p1/compiler/cpp/thrift.exe -cpp -java -py -php -rb -perl -erl -xsd -r
shared.thrift的第一行#!/usr/local/bin/thrift -cpp -java -py -php -xsd -perl
改成#!/cygdrive/d/Java/thrift-20080411p1/compiler/cpp/thrift.exe -cpp -java -py -php -xsd -perl
保存文件。
15.cygwin下转到tutorial目录.
cd /cygdrive/d/Java/thrift-20080411p1/tutorial
16.分别运行
./shared.thrift
和./tutorial.thrift
生成相关代码。
17.在D:\Java\thrift-20080411p1\lib\java下面运行ant.生成libthrift.jar
18.编辑D:\Java\thrift-20080411p1\tutorial\java\build.xml。
<property name=”cpath” location=”/usr/local/lib/libthrift.jar” />
改成
<property name=”cpath” location=”../../lib/java/libthrift.jar” />
19.
D:\Java\thrift-20080411p1\tutorial\java\下运行ant。
生成class文件。
20.在D:\Java\thrift-20080411p1\tutorial\java\下面启动Server。
java -cp ./tutorial.jar;../../lib/java/libthrift.jar JavaServer
然后再启动客户端:
java -cp ./tutorial.jar;../../lib/java/libthrift.jar JavaClient
服务端可以看到输出信息:
Starting the server…
ping()
add(1,1)
calculate(1, {4,1,0})
calculate(1, {2,15,10})
getStruct(1)
客户端的输出为:
ping()
1+1=2
Invalid operation: Cannot divide by 0
15-10=5
Check log: 5
Tags:
google protobuf,
RPC,
thrift