编译thrift服务

1、代码下载

      从网上可以直接下载,http://www.apache.org/dyn/closer.cgi?path=/thrift/0.10.0/thrift-0.10.0.tar.gz

      也可以用git从github上下载 git clone https://git-wip-us.apache.org/repos/asf/thrift.git

 

2、环境准备:

      服务器的linux事centos6.7的,所以这里只列出centos6的

Building Apache Thrift on CentOS 6.5

Starting with a minimal installation, the following steps are required to build Apache Thrift on Centos 6.5. This example builds from source, using the current development master branch. These instructions should also work with Apache Thrift releases beginning with 0.9.2.

Update the System

sudo yum -y update

Install the Platform Development Tools

sudo yum -y groupinstall "Development Tools"

Upgrade autoconf/automake/bison

sudo yum install -y wget

Upgrade autoconf

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar xvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=/usr
make
sudo make install
cd ..

Upgrade automake

wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
tar xvf automake-1.14.tar.gz
cd automake-1.14
./configure --prefix=/usr
make
sudo make install
cd ..

Upgrade bison

wget http://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz
tar xvf bison-2.5.1.tar.gz
cd bison-2.5.1
./configure --prefix=/usr
make
sudo make install
cd ..

Add Optional C++ Language Library Dependencies

All languages require the Apache Thrift IDL Compiler and at this point everything needed to make the IDL Compiler is installed (if you only need the compiler you can skip to the Build step).

If you will be developing Apache Thrift clients/servers in C++ you will also need additional packages to support the C++ shared library build.

Install C++ Lib Dependencies

sudo yum -y install libevent-devel zlib-devel openssl-devel

Upgrade Boost >= 1.53

wget http://sourceforge.net/projects/boost/files/boost/1.53.0/boost_1_53_0.tar.gz
tar xvf boost_1_53_0.tar.gz
cd boost_1_53_0
./bootstrap.sh
sudo ./b2 install





 
 
 

安装java 安装 ant

yum install ant

不安装ant的话,configure的时候会发现不支持java:

**Building Java Library ........ : no**

Build and Install the Apache Thrift IDL Compiler

git clone https://git-wip-us.apache.org/repos/asf/thrift.git
cd thrift
./bootstrap.sh
./configure --with-lua=no
make
sudo make install

3、编译中出现的问题解决:

 

   (1) 第一个出现的问题是:

      找不到 event2/event_compat.h文件

      解决方法: 下载libevent最新的版本,然后安装后即可

    (2)第二个问题

           src/thrift/server/TNonblockingServer.cpp: In member function ‘void apache::thrift::server::TNonblockingServer::TConnection::workSocket()‘:

    src/thrift/server/TNonblockingServer.cpp:460:16: error: expected ‘)‘ before ‘PRIu32‘
    "(%" PRIu32 " > %" PRIu64

           解决方法:

                 更改了文件:src/thrift/Thrift.h,最后编译成功,更改内容如下:

    #ifdef HAVE_INTTYPES_H

    #define __STDC_FORMAT_MACROS

    #include <inttypes.h>
    #endif

     (3)第三个问题
           src/thrift/transport/THeaderTransport.h  中TVirtualTransport没有定义的错误

            解决方法: 

              在改头文件中提示出错的TVirtualTransport改成TVirtualTransport<THeaderTransport, TFramedTransport>即可,模板的问题

 

 

         

 

 

  

 

 

 

  

Thrift编译 Ubuntu 16.04 一、Thrift简介 Apache Thrift软件框架(用于可扩展的跨语言服务开发)将软件堆栈与代码生成引擎结合在一起,可以构建C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,JavaScript,Node.js,Smalltalk,OCaml和Delphi等语言。 入门 下载Apache Thrift 首先,下载 Thrift的副本。 构... 阅读详情

相关推荐

【Thrift】Thrift框架和使用教程-- C/S框架使用教程

1、前言 Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。 在xxx.Thrift文件中用Thri.

我的笔记本 1万+

thrift双向通信实现时客户端报:“apache::thrift::transport::TTransportExce what(): Frame size has negative value”

    公司的代码之前实现了thrift客户端,服务端单向通信,也就是在一个连接中,只能客户端调用服务端的接口,而服务端不能调用客户端的接口。需要修改为是双向通信,也就是允许服务端主动给客户端发消息,或者说调用客户端的接口。下面的代码是服务端部分代码: nbSocket.reset(new transport::TNonblockingServerSocket(port)); serverThr...

weixin_42514636的博客 3247

Qt中调用thrift

thrift是一个Apache公司开源的一款RPC(Remote Procedure Call)框架,让不同语言构建的服务可以做到远程调用无缝对接。Thrift库分两部分:libthrift - 核心库文件,需要依赖OpenSSL、boostlibthriftnb - 包含thrift非阻塞服务器, 需要libevent操作系统:windows 10这里因为项目需要,编译MinGW64版本的thrift。

草上爬的博客 4041

thrift解读(三)——TNonblockingServer 内的 IO线程 和 work线程之间数据流处理逻辑

         一言概之   IO线程 负责跟客户端 通讯,IO线程读取一个完整的请求后,任务封装成(class TNonblockingServer::TConnection::Task)投递给work线程,work线程读取解析数据,处理业务逻辑完成后,把结果notify给IO线程,后者负责返回结果给客户端。TNonblockingServer内 N个IO thread、N个work thre...

andylau00j的专栏 2757

LayaNative源码编译

修改好后的LayaNative2.0需要重新编译生成Android和iOS所需要的动态库文件。

末之 1358

Windows Server 2016上,手把手教你搭建MDT 8456自动化部署环境(含ADK 2004与WDS配置)

本文详细指导在Windows Server 2016上搭建MDT 8456自动化部署环境,涵盖ADK 2004与WDS配置全流程。通过标准化操作系统部署、应用程序静默安装和驱动程序注入,实现企业级自动化部署解决方案,显著提升IT运维效率。特别针对兼容性问题和权限陷阱提供实战解决方案。

weixin_29876033的博客 385

thrift运行过程报错,多线程环境,docker环境

多线程调用,或者callback调用频繁,会导致以上报错,现象为,执行到ResultData函数此语句时,会出现两个start却没有end,猜想可能是由于thrift内部资源死锁导致,有那位高人若知望指出哈。在callback中加锁。(当时不知道,苦苦撑了好几天,撸了好多代码,走了好多弯路,说多了都是泪呀)至于和C++之中有什么关系有待进一步研究。clinet调用sever端接口时卡死。server用python。

it 634

在边缘部署实时视觉应用程序

克隆代码库后,压缩源文件夹的内容,并将生成的存档文件上传到上一节中创建的 S3 存储桶中。在本教程中,我们将使用 AWS Greengrass,因为它支持大多数 Windows 和 Linux 设备,包括我们的目标 Jetson AGX Xavier。此外,模型还可以量化到更低的精度,从而加快推理速度,但对于较大的模型,此过程通常较长(约 45 分钟)。本例中的脚本只是启动一个 Bash 环境,切换到解压后的构件目录,最后使用所需的命令行参数运行 Deepstream 应用。每个模型类型都有其独有的格式。

2501_91623519的博客 1280

thrift之TTransport层的分帧传输类TFramedTransport

帧传输类就是按照一帧的固定大小来传输数据,所有的写操作首先都是在内存中完成的直到调用了flush操作,然后传输节点在flush操作之后将所有数据根据数据的有效载荷写入数据的长度的二进制块发送出去,允许在接收的另一端按照固定的长度来读取。   帧传输类同样还是从缓存基类TBufferBase继承而来,实现的接口当然也基本相同,只是实现的方式不同而已,下面就来看看具体的实现过程和原理。   这个类...

星.云计算 836

Open3D 计算点云法向量的夹角【2026最新版】

计算法向量的夹角,博客长期更新,本文最新更新时间为:2026年3月7日。

点云侠的博客 3129

【开发必备插件】iframe嵌套报“拒绝连接请求”的本地解决方法

关键词:iframe 拒绝连接、X-Frame-Options、Chrome 插件、前端调试、Allow X-Frame-Options前几天我在本地项目里调试一个第三方网站的嵌入页面时,遇到了一个非常经典的报错:xxx.com 拒绝了我们的连接请求。熟悉的老前端们一眼就知道——这是。但对于日常开发来说,我们经常需要在本地测试 iframe 嵌套外部页面(比如嵌第三方登录页、支付页、可视化报表系统等)。而线上站点配置了或DENY时,就会直接导致 iframe 加载失败。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1539

hbase thrift2 (hbase 2.0.5)服务的开启以及hbase.thrift 的C_glib编译

Starting the HBase Thrift Server in the Background Where is the service’s port, and is the port for the web-ui with information about the service, use the following command to start the HBase Thrift...

Sword1996的博客 1665

14、深入解析Sigma - Delta调制算法:从原理到应用

本博客深入解析了Sigma-Delta调制(SDM)算法的原理与应用,特别是在Super Audio CD(SA-CD)音频编码中的作用。文章探讨了传统SDM的局限性,并介绍了一系列改进型前瞻式SDM技术,如Trellis Sigma-Delta调制、高效网格Sigma-Delta调制和修剪树Sigma-Delta调制。这些技术通过降低计算复杂度和提升信号转换质量,在音频处理和无损数据压缩领域展现出巨大潜力。此外,博客还对不同SDM技术进行了性能比较,并分析了如何实现最大信噪比(SNR),为未来音频技术和数

tgb34567890的博客 420

thrift服务windows环境编译失败

为什么80%的码农都做不了架构师?>>> ...

weixin_34355715的博客 223

在 Windows 11 下运行 OminiParse V2,详细教程【含问题解决细节】

OmniParser V2 是微软推出的 GUI 智能体解析工具,可将屏幕截图转换为结构化元素,帮助 LLM 理解和操作界面。它在检测小图标和推理速度上显著提升,延迟降低 60%,并支持多种 LLM。

简简单单Onlinezuozuo 1087

SAP 系统中的数字签名解决方案及应用案例分析

在当前企业信息化及数字化转型的大背景下,数据安全与身份认证显得尤为重要。数字签名技术作为保障数据真实性和完整性的重要手段,在 SAP 系统中得到了广泛应用。本文将详细探讨 SAP 系统中部分应用场景如何利用数字签名技术满足业务需求,涵盖 SAP Single Sign-On、质量管理、过程工业生产计划以及 SAP ArchiveLink 内容服务器等方面,力求通过深入解读,帮助读者更好地理解和应用这一关键技术。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 526

.dll文件存在但是不显示_IDEA 本地编译thrift文件没有问题,但是服务实现接口就是不识别...

环境本地环境ideathrift版本是0.8.0使用如下命令编译项目thrift编译文件问题描述在项目的编译thrift文件,并且在目标目录下也生成了java源文件,但是在服务实现接口的时候接口一直飘红,不识别thrift生成的接口文件,并且测试实现thrift生成的其他接口都可以识别。于是怀疑是文件的问题。于是在网上搜索答案,找到了这个帖子 https://www.v2ex.com/t/2690...

weixin_29913535的博客 399

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Thrift 在Windows环境下的编译与简单C++应用

Thrift是Facebook提供的一个跨语言的服务部署框架,可以实现客户端和服务器远程过程调用。相较于Google的grpc框架,Thrift对三方库依赖更少,编译更简单,并且运行效率也更高。Thrift只依赖boost、openssl和libevent三个库,本次测试编译的都是静态库。下面详细介绍thrift 0.15.0的编译过程。

南_无_生的博客 4271

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Thrift 学习笔记2——Windows环境下Thrift的安装、编译以及测试

Ubuntu 8.0+环境下Thrift的安装与编译请参见http://blog.youkuaiyun.com/zj_1395201/article/details/6974954 1、首先安装Cygwin Cygwin 是一个用于 Windows 的类 UNIX shell 环境。 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性;以及 Bash shell 的改写

张进の专栏 9178

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Apache Thrift Golang 实践

Apache Thrift Golang 实践

Stefan的博客 605

Thrift 学习笔记1——Ubuntu环境下Thrift的安装、编译以及测试

1、Thrift 概念 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。

张进の专栏 7191

【Apache Thrift】Thrift的使用和编译(二)

一、Thrift的使用   1.1基本类型  thrift不支持无符号类型,因为很多编程语言不存在无符号类型,比如javabyte: 有符号字节i16: 16位有符号整数i32: 32位有符号整数i64: 64位有符号整数double: 64位浮点数string: 字符串   1.2容器类型  集合中的元素可以是除了service之外的任何类型,包括exception。list: 一系列由T类型的

程序员小毛驴的博客 1万+

thrift php 编译,Thrift编译安装指南

step 1 编写thrift文件 yang.thriftstruct Student{ 1: i32 sno, 2: string sname, 3: bool ssex, 4: i16 sage, } service Serv{ void put(1: Student s), i32 icall(1: Student s), string s...

weixin_29369017的博客 304

用thrift实现客户端和服务端的C++代码

<br />Getting started<br />The first thing you need to know is that the C++ code generated by Thrift compiles only on Unix based systems, although some success has been reported using Cygwin on Win32 in ThriftInstallationWin32.<br />Requirements<br />Make

金美光的小屋 8865

Thrift应用:Windows下C#服务端实现

部分实现参考博主其他文章: http://blog.youkuaiyun.com/ceasadan/article/details/52277136 《安装Thrift并写一个简单的测试程序》 http://blog.youkuaiyun.com/ceasadan/article/details/52317586 《Thrift小试牛刀:实现Windows_C#_客户端与Linux_C++_服务端通信》 先从官网下载...

qq_34322008的博客 426
上一篇: linux基础——在redhat6下配置yum源的使用
下一篇: Windows下远程登录linuxe使用clipse开发C++程序
eric509
博客等级 码龄19年 8粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值