php thrift 编译,Thrift 源码编译

Thrfit0.11版本安装

构建Apache Thrift IDL编译器

环境准备

yum install libtool libtool-devel libevent libevent-devel flex  byacc byacc-devel  boost boost-devel  bison bison-devel -y

下载

wget https://github.com/apache/thrift/archive/0.11.0.tar.gz

指令执行

./bootstrap.sh

./configure --enable-libs=no --prefix=/home/test/

make && make install

说明 --enable-libs=no开关仅在没有lib构建的情况下构建Apache Thrift IDL编译器

configure后面可以指定如下需要编译的语言库

--with-csharp           build the C# library [default=yes]

--with-java             build the Java library [default=yes]

--with-erlang           build the Erlang library [default=yes]

--with-nodejs           build the Nodejs library [default=yes]

--with-lua              build the Lua library [default=yes]

--with-python           build the Python library [default=yes]

--with-perl             build the Perl library [default=yes]

--with-php              build the PHP library [default=yes]

--with-php_extension    build the PHP_EXTENSION library [default=yes]

--with-dart             build the DART library [default=yes]

--with-ruby             build the Ruby library [default=yes]

--with-haskell          build the Haskell library [default=yes]

--with-go               build the Go library [default=yes]

注意

# 当make报错时,package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context",可以把go关掉:

[root@node1 thrift-0.11.0]# ./configure  --with-go=no

Thrift C++动态库编译

源码目录:thrift-0.11.0/lib/cpp

只有当执行了./configure --enable-libs=no --prefix=/home/test/,进行了IDL的配置之后,才会根据Makefile.am文件生成Makefile文件。

只有执行了make &&make install,才能够正常的编译完成C++的测试例子,出错如下,原因是还没有生成IDL工具thrift:

make[1]: Entering directory '/home/dong/thrift/thrift-0.11.0/lib/cpp/test'

/home/dong/thrift/thrift-0.11.0/compiler/cpp/thrift --gen cpp ../../../test/AnnotationTest.thrift

make[1]: /home/dong/thrift/thrift-0.11.0/compiler/cpp/thrift: Command not found

make[1]: *** [Makefile:1815: gen-cpp/AnnotationTest_types.h] Error 127

make[1]: Leaving directory '/home/dong/thrift/thrift-0.11.0/lib/cpp/test'

make: *** [Makefile:1720: all-recursive] Error 1

实际上已经成功生成了libthrift动态库目录在thrift-0.11.0/lib/cpp/.libs

库:libthrift-0.11.0.so  libthrift.a  libthrift.la  libthrift.lai  libthrift.so

Thrfit0.90版本安装

1)确保系统安装了OpenSSL开发包

rpm -qa |grep openssl

openssl-libs-1.0.2k-19.el7.x86_64

openssl-1.0.2k-19.el7.x86_64

openssl-devel-1.0.2k-19.el7.x86_64

2)没有rpm源仓库,手动编译指定安装

./configure CPPFLAGS="-I /home/dong/3thrdparty/openssl-1.0.2j/include" LDFLAGS="-ldl -L /home/dong/3thrdparty/openssl-1.0.2j/"

否则编译出错

configure: error: "Error: libcrypto required."

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值