ubuntu thrift 0.9.3编译安装
Table of Contents
1 下载thrift源代码
git clone https://git-wip-us.apache.org/repos/asf/thrift.git thrift
git checkout 0.9.3
2 编译并安装
安装依赖
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
生成编译文件
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
./configure --libdir=/usr/lib --without-java --without-python
...
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.
编译
make
3 运行测试程序
测试
make check
注意,v0.9.3的make check有个bug, 这里是对应的jira issue, 报错信息是
An error message from getaddrinfo on the console is expected:
Thrift: Mon Dec 14 12:19:09 2015 TServerSocket::listen() BIND 9090
4 安装
sudo make install
注意:
- $thrift-git-project 是thrift gi项目所在目录
- 库文件安装在/usr/lib目录下
- 头文件安装在/usr/local/include/thrift目录下
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'
来自: http://blog.csdn.net/csfreebird/article/details/50293715
ubuntu thrift 0.9.3编译安装的更多相关文章
- 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1
目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...
- nginx-1.12.0版本(编译安装)-自定义安装路径
nginx-1.12.0版本(编译安装)-自定义安装路径 安装路径:/application/nginx-1.12.0 1.前期准备 安装编译需要的gcc和gcc-c++ yum install -y ...
- ambari 2.5.0源码编译安装
参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...
- [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程
标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...
- Ubuntu 16.04源码编译安装nginx 1.10.0
一.下载相关的依赖库 pcre 下载地址 http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.t ...
- [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题
1.OpenCV-3.2.0+OpenCV_contrib-3.2.0编译安装过程 1)下载官方要求的依赖包 GCC 4.4.x or later CMake 2.6 or higher Git GT ...
- thrift在windows的编译/安装--c++版
前言: thrift是出于Facebook的rpc网络编程框架, 其对跨平台和多语言的支持优于google protobuf, 但thrift在java/c#语言上应用比较多, 资料也丰富, 在win ...
- RPC与实践(thrift在windows的编译/安装--c++版)
------------------------------------------------------------------------ RPC 功能目标 RPC 的主要功能目标是让构建分布式 ...
- ubuntu下mysql源码编译安装
建议:cpu4核以上,内存4G以上 1. 安装环境:Ubuntu Server 14.10MySQL-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make ...
随机推荐
- RSS阅读器&BT sync
①RSS阅读器? 答:RSS阅读器是一种软件或是说一个程序,这种软件可以自由读取RSS和Atom两种规范格式的文档,且这种读取RSS和Atom文档的软件有多个版本,由不同的人或公司开发,有着不同的名字 ...
- [转]模拟HttpContext 实现ASP.NET MVC 的单元测试
众所周知 ASP.NET MVC 的一个显著优势即可以很方便的实现单元测试,但在我们测试过程中经常要用到HttpContext,而默认情况下单元测试框架是不提供HttpContext的模拟的,本文通过 ...
- C#实现office文档转换为PDF或xps的一些方法( 转)
源博客http://blog.csdn.net/kable999/article/details/4786654 代码支持任意office格式 需要安装office 2007 还有一个office20 ...
- python 应用xml.dom.minidom读xml
xml文件 <?xml version="1.0" encoding="utf-8"?> <city> <name>上海&l ...
- webconfig文件serviceHostingEnvironment节点出错的解决方法
在三点五和二版本的配置中可以出现这个节点,但是在4.0是没有的,所以如果框架是4.0的时候要除去这个节点,不然就会报以下错误: Configuration Error Description: An ...
- HDU2897邂逅明下(博弈)
题目是说每次每个人可以取[p,q],而且是最后一个不得不取完的人输 这道题刚刚看别人过,还一直纠结感觉不会做,然后想到1+q的倍数,还是不会,想到p+q的倍数,却发现最后一个取的人是输的,然后就更加无 ...
- ELF学习--重定位文件
add.c int data = 1;int bss;const int rodata = 1;int add(int num1, int num2){ int sum = 0; sum = num1 ...
- Keil AGDI Header File
#ifndef __AGDI__INCED___ #define __AGDI__INCED___ //---Revision History: --------------------------- ...
- 无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法。
今天碰到客户的电脑在导出EXCEL的时候提示,无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 excel._application 的问题 最后用下面的方法 ...
- UVALive 4223 Trucking 二分+spfa
Trucking 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8& ...