Thrift 源码编译
admin
2023-02-19 21:20:41
0

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."

相关内容

热门资讯

警方介入女游客高空秋千坠亡,家... 近日,女游客体验高空秋千坠亡事件引发关注。5月5日,四川省广安市华蓥市“5·3”事故调查组发布情况通...
存储涨价之后,如何让AI走向数... 国家数据局数据显示,从2024年到2026年,中国日均Token调用量从1000亿飙升至140万亿(...
华为MatePad Pro M... IT之家 5 月 6 日消息,华为海外账号 Huawei Mobile 今日公布了一款华为 Mate...
万象 一体化防爆气象仪:做高危... WX-FBQ2万象 一体化防爆气象仪:做高危环境的“硬核守护者” 在石油化工、油气储备及煤矿矿井等高...
母亲节好礼推荐 三星Galax... 母亲节悄然临近,一份兼具心意与实用性的礼物,成为子女们表达感恩的最佳载体。在智能手机成为生活必需品的...
视频丨联合国举行AI主题会议 ... 日,中国、赞比亚常驻联合国代表团和中国科学技术协会在纽约联合国总部共同举办“人工智能能力建设国际合作...
首发2亿RYYB长焦+XMAG... 一、前言:2亿RYYB长焦出手 华为影像旗舰的新答案 为什么有人随手一拍就是氛围感大片,而多数人反复...
谷歌、英伟达押注,这家估值 4... 作者|桦林舞王 编辑|靖宇 1956 年,一批科学家聚在达特茅斯,第一次正式讨论「机器能否思考」。...
英伟达想革光模块的命 问AI· 英伟达CPO技术如何冲击光模块市场格局? 上个月中际旭创一季报公布,营收、净利润双双翻倍...
豆包为什么选择了 “最low”... 针对付费会员,豆包官方回应称,豆包始终提供免费服务,在免费服务的基础上,豆包也在探索推出更多增值服务...