安装依赖
1
2
3
4
5
6
|
apt-get install automake
apt-get install libssl-dev
apt-get install byacc
apt-get install bison
apt-get install flex
apt-get install libevent-dev
|
生成编译文件
1
2
3
4
5
6
7
8
9
|
cd thrift
./bootstrap.sh
configure.ac:
84
: installing
'./compile'
configure.ac:
88
: installing
'./config.guess'
configure.ac:
88
: installing
'./config.sub'
configure.ac:
27
: installing
'./install-sh'
configure.ac:
27
: installing
'./missing'
compiler/cpp/Makefile.am: installing
'./depcomp'
configure.ac: installing
'./ylwrap'
|
编译前配置,禁用java和python, 安装目录设为/usr/lib,而不是默认的/usr/local/lib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
./configure --libdir=/usr/lib --without-java --without-python
--without-c_glib
thrift
0.9
.
3
Building C++ Library ......... : yes
Building C (GLib) Library .... : no
Building Java Library ........ : no
Building C# Library .......... : no
Building Python Library ...... : no
Building Ruby Library ........ : no
Building Haxe Library ........ : no
Building Haskell Library ..... : no
Building Perl Library ........ : no
Building PHP Library ......... : no
Building Erlang Library ...... : no
Building Go Library .......... : no
Building D Library ........... : no
Building NodeJS Library ...... : no
Building Lua Library ......... : no
C++ Library:
Build TZlibTransport ...... : yes
Build TNonblockingServer .. : yes
Build TQTcpServer (Qt4) .... : no
Build TQTcpServer (Qt5) .... : no
If something is missing that you think should be present,
please skim the output of configure to find the missing
component. Details are present in config.log.
|
编译
1
|
make
|
运行测试程序
测试
1
|
make check
|
注意,v0.9.3的make check有个bug, 这里是对应的jira issue, 报错信息是
1
2
|
An error message from getaddrinfo on the console is expected:
Thrift: Mon Dec
14
12
:
19
:
09
2015
TServerSocket::listen() BIND
9090
|
安装
sudo make install
注意:
- $thrift-git-project 是thrift gi项目所在目录库文件安装在/usr/lib目录下头文件安装在/usr/local/include/thrift目录下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
Making install in compiler/cpp
make[
1
]: Entering directory
'$thrift-git-project/compiler/cpp'
make install-am
make[
2
]: Entering directory
'$thrift-git-project/compiler/cpp'
make[
3
]: Entering directory
'$thrift-git-project/compiler/cpp'
/bin/mkdir -p
'/usr/local/bin'
/bin/bash ../../libtool --mode=install /usr/bin/install -c thrift
'/usr/local/bin'
libtool: install: /usr/bin/install -c thrift /usr/local/bin/thrift
make[
3
]: Nothing to be done
for
'install-data-am'
.
make[
3
]: Leaving directory
'$thrift-git-project/compiler/cpp'
make[
2
]: Leaving directory
'$thrift-git-project/compiler/cpp'
make[
1
]: Leaving directory
'$thrift-git-project/compiler/cpp'
Making install in lib
make[
1
]: Entering directory
'$thrift-git-project/lib'
Making install in cpp
make[
2
]: Entering directory
'$thrift-git-project/lib/cpp'
Making install in .
make[
3
]: Entering directory
'$thrift-git-project/lib/cpp'
make[
4
]: Entering directory
'$thrift-git-project/lib/cpp'
/bin/mkdir -p
'/usr/lib'
/bin/bash ../../libtool --mode=install /usr/bin/install -c libthrift.la libthriftnb.la libthriftz.la
'/usr/lib'
libtool: install: /usr/bin/install -c .libs/libthrift-
0.9
.
3
.so /usr/lib/libthrift-
0.9
.
3
.so
libtool: install: (cd /usr/lib && { ln -s -f libthrift-
0.9
.
3
.so libthrift.so || { rm -f libthrift.so && ln -s libthrift-
0.9
.
3
.so libthrift.so; }; })
libtool: install: /usr/bin/install -c .libs/libthrift.lai /usr/lib/libthrift.la
libtool: install: /usr/bin/install -c .libs/libthriftnb-
0.9
.
3
.so /usr/lib/libthriftnb-
0.9
.
3
.so
libtool: install: (cd /usr/lib && { ln -s -f libthriftnb-
0.9
.
3
.so libthriftnb.so || { rm -f libthriftnb.so && ln -s libthriftnb-
0.9
.
3
.so libthriftnb.so; }; })
libtool: install: /usr/bin/install -c .libs/libthriftnb.lai /usr/lib/libthriftnb.la
libtool: install: /usr/bin/install -c .libs/libthriftz-
0.9
.
3
.so /usr/lib/libthriftz-
0.9
.
3
.so
libtool: install: (cd /usr/lib && { ln -s -f libthriftz-
0.9
.
3
.so libthriftz.so || { rm -f libthriftz.so && ln -s libthriftz-
0.9
.
3
.so libthriftz.so; }; })
libtool: install: /usr/bin/install -c .libs/libthriftz.lai /usr/lib/libthriftz.la
libtool: install: /usr/bin/install -c .libs/libthrift.a /usr/lib/libthrift.a
libtool: install: chmod
644
/usr/lib/libthrift.a
libtool: install: ranlib /usr/lib/libthrift.a
libtool: install: /usr/bin/install -c .libs/libthriftnb.a /usr/lib/libthriftnb.a
libtool: install: chmod
644
/usr/lib/libthriftnb.a
libtool: install: ranlib /usr/lib/libthriftnb.a
libtool: install: /usr/bin/install -c .libs/libthriftz.a /usr/lib/libthriftz.a
libtool: install: chmod
644
/usr/lib/libthriftz.a
libtool: install: ranlib /usr/lib/libthriftz.a
libtool: finish: PATH=
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin"
ldconfig -n /usr/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and
do
at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries
for
more information, such as the ld(
1
) and ld.so(
8
) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p
'/usr/local/include/thrift/async'
/usr/bin/install -c -m
644
src/thrift/async/TAsyncChannel.h src/thrift/async/TAsyncDispatchProcessor.h src/thrift/async/TAsyncProcessor.h src/thrift/async/TAsyncBufferProcessor.h src/thrift/async/TAsyncProtocolProcessor.h src/thrift/async/TConcurrentClientSyncInfo.h src/thrift/async/TEvhttpClientChannel.h src/thrift/async/TEvhttpServer.h
'/usr/local/include/thrift/async'
/bin/mkdir -p
'/usr/local/include/thrift/concurrency'
/usr/bin/install -c -m
644
src/thrift/concurrency/BoostThreadFactory.h src/thrift/concurrency/Exception.h src/thrift/concurrency/Mutex.h src/thrift/concurrency/Monitor.h src/thrift/concurrency/PlatformThreadFactory.h src/thrift/concurrency/PosixThreadFactory.h src/thrift/concurrency/StdMonitor.cpp src/thrift/concurrency/StdMutex.cpp src/thrift/concurrency/StdThreadFactory.cpp src/thrift/concurrency/StdThreadFactory.h src/thrift/concurrency/Thread.h src/thrift/concurrency/ThreadManager.h src/thrift/concurrency/TimerManager.h src/thrift/concurrency/FunctionRunner.h src/thrift/concurrency/Util.h
'/usr/local/include/thrift/concurrency'
/bin/mkdir -p
'/usr/local/include/thrift/processor'
/usr/bin/install -c -m
644
src/thrift/processor/PeekProcessor.h src/thrift/processor/StatsProcessor.h src/thrift/processor/TMultiplexedProcessor.h
'/usr/local/include/thrift/processor'
/bin/mkdir -p
'/usr/local/include/thrift/protocol'
/usr/bin/install -c -m
644
src/thrift/protocol/TBinaryProtocol.h src/thrift/protocol/TBinaryProtocol.tcc src/thrift/protocol/TCompactProtocol.h src/thrift/protocol/TCompactProtocol.tcc src/thrift/protocol/TDebugProtocol.h src/thrift/protocol/TBase64Utils.h src/thrift/protocol/TJSONProtocol.h src/thrift/protocol/TMultiplexedProtocol.h src/thrift/protocol/TProtocolDecorator.h src/thrift/protocol/TProtocolTap.h src/thrift/protocol/TProtocolException.h src/thrift/protocol/TVirtualProtocol.h src/thrift/protocol/TProtocol.h
'/usr/local/include/thrift/protocol'
/bin/mkdir -p
'/usr/local/include/thrift/qt'
/usr/bin/install -c -m
644
src/thrift/qt/TQIODeviceTransport.h src/thrift/qt/TQTcpServer.h
'/usr/local/include/thrift/qt'
/bin/mkdir -p
'/usr/local/include/thrift/server'
/usr/bin/install -c -m
644
src/thrift/server/TConnectedClient.h src/thrift/server/TServer.h src/thrift/server/TServerFramework.h src/thrift/server/TSimpleServer.h src/thrift/server/TThreadPoolServer.h src/thrift/server/TThreadedServer.h src/thrift/server/TNonblockingServer.h
'/usr/local/include/thrift/server'
/bin/mkdir -p
'/usr/local/include/thrift'
/usr/bin/install -c -m
644
../../config.h src/thrift/thrift-config.h src/thrift/TDispatchProcessor.h src/thrift/Thrift.h src/thrift/TOutput.h src/thrift/TProcessor.h src/thrift/TApplicationException.h src/thrift/TLogging.h src/thrift/cxxfunctional.h src/thrift/TToString.h
'/usr/local/include/thrift'
/bin/mkdir -p
'/usr/local/include/thrift/transport'
/usr/bin/install -c -m
644
src/thrift/transport/PlatformSocket.h src/thrift/transport/TFDTransport.h src/thrift/transport/TFileTransport.h src/thrift/transport/TSimpleFileTransport.h src/thrift/transport/TServerSocket.h src/thrift/transport/TSSLServerSocket.h src/thrift/transport/TServerTransport.h src/thrift/transport/THttpTransport.h src/thrift/transport/THttpClient.h src/thrift/transport/THttpServer.h src/thrift/transport/TSocket.h src/thrift/transport/TPipe.h src/thrift/transport/TPipeServer.h src/thrift/transport/TSSLSocket.h src/thrift/transport/TSocketPool.h src/thrift/transport/TVirtualTransport.h src/thrift/transport/TTransport.h src/thrift/transport/TTransportException.h src/thrift/transport/TTransportUtils.h src/thrift/transport/TBufferTransports.h src/thrift/transport/TShortReadTransport.h src/thrift/transport/TZlibTransport.h
'/usr/local/include/thrift/transport'
/bin/mkdir -p
'/usr/lib/pkgconfig'
/usr/bin/install -c -m
644
thrift.pc thrift-nb.pc thrift-z.pc
'/usr/lib/pkgconfig'
make[
4
]: Leaving directory
'$thrift-git-project/lib/cpp'
make[
3
]: Leaving directory
'$thrift-git-project/lib/cpp'
Making install in test
make[
3
]: Entering directory
'$thrift-git-project/lib/cpp/test'
make install-am
make[
4
]: Entering directory
'$thrift-git-project/lib/cpp/test'
make[
5
]: Entering directory
'$thrift-git-project/lib/cpp/test'
make[
5
]: Nothing to be done
for
'install-exec-am'
.
make[
5
]: Nothing to be done
for
'install-data-am'
.
make[
5
]: Leaving directory
'$thrift-git-project/lib/cpp/test'
make[
4
]: Leaving directory
'$thrift-git-project/lib/cpp/test'
make[
3
]: Leaving directory
'$thrift-git-project/lib/cpp/test'
make[
2
]: Leaving directory
'$thrift-git-project/lib/cpp'
make[
2
]: Entering directory
'$thrift-git-project/lib'
make[
3
]: Entering directory
'$thrift-git-project/lib'
make[
3
]: Nothing to be done
for
'install-exec-am'
.
make[
3
]: Nothing to be done
for
'install-data-am'
.
make[
3
]: Leaving directory
'$thrift-git-project/lib'
make[
2
]: Leaving directory
'$thrift-git-project/lib'
make[
1
]: Leaving directory
'$thrift-git-project/lib'
Making install in test
make[
1
]: Entering directory
'$thrift-git-project/test'
Making install in cpp
make[
2
]: Entering directory
'$thrift-git-project/test/cpp'
make install-am
make[
3
]: Entering directory
'$thrift-git-project/test/cpp'
make[
4
]: Entering directory
'$thrift-git-project/test/cpp'
make[
4
]: Nothing to be done
for
'install-exec-am'
.
make[
4
]: Nothing to be done
for
'install-data-am'
.
make[
4
]: Leaving directory
'$thrift-git-project/test/cpp'
make[
3
]: Leaving directory
'$thrift-git-project/test/cpp'
make[
2
]: Leaving directory
'$thrift-git-project/test/cpp'
make[
2
]: Entering directory
'$thrift-git-project/test'
make[
3
]: Entering directory
'$thrift-git-project/test'
make[
3
]: Nothing to be done
for
'install-exec-am'
.
make[
3
]: Nothing to be done
for
'install-data-am'
.
make[
3
]: Leaving directory
'$thrift-git-project/test'
make[
2
]: Leaving directory
'$thrift-git-project/test'
make[
1
]: Leaving directory
'$thrift-git-project/test'
Making install in tutorial
make[
1
]: Entering directory
'$thrift-git-project/tutorial'
Making install in cpp
make[
2
]: Entering directory
'$thrift-git-project/tutorial/cpp'
make install-am
make[
3
]: Entering directory
'$thrift-git-project/tutorial/cpp'
make[
4
]: Entering directory
'$thrift-git-project/tutorial/cpp'
make[
4
]: Nothing to be done
for
'install-exec-am'
.
make[
4
]: Nothing to be done
for
'install-data-am'
.
make[
4
]: Leaving directory
'$thrift-git-project/tutorial/cpp'
make[
3
]: Leaving directory
'$thrift-git-project/tutorial/cpp'
make[
2
]: Leaving directory
'$thrift-git-project/tutorial/cpp'
make[
2
]: Entering directory
'$thrift-git-project/tutorial'
../compiler/cpp/thrift --gen html -r ../tutorial/tutorial.thrift
make[
3
]: Entering directory
'$thrift-git-project/tutorial'
make[
3
]: Nothing to be done
for
'install-exec-am'
.
make[
3
]: Nothing to be done
for
'install-data-am'
.
make[
3
]: Leaving directory
'$thrift-git-project/tutorial'
make[
2
]: Leaving directory
'$thrift-git-project/tutorial'
make[
1
]: Leaving directory
'$thrift-git-project/tutorial'
make[
1
]: Entering directory
'$thrift-git-project'
make[
2
]: Entering directory
'$thrift-git-project'
make[
2
]: Nothing to be done
for
'install-exec-am'
.
make[
2
]: Nothing to be done
for
'install-data-am'
.
make[
2
]: Leaving directory
'$thrift-git-project'
make[
1
]: Leaving directory
'$thrift-git-project'