在RHEL上安装Thrift(支持C++)的若干问题 » 编码无悔 / Intent & Focused
在RHEL上安装Thrift(支持C++)的若干问题 » 编码无悔 / Intent & Focused
[原创]在RHEL上安装Thrift(支持C++)的若干问题
2010年12月15日 由 learnhard 留言 »本文针对的读者:要用Thrift开发C++应用程序的人。
环境:
RHEL 5.3(内核2.6.18-128.el5),32位
gcc 4.1.2
Boost 1.35.0
(1)什么是Thrift?
先转一段网上的定义:
Thrift是一个跨语言服务部署框架,最初由Facebook于2007年开发,后于2008年进入Apache孵化器(Apache Incubator)。
类似于SOAP,COM 和CORBA,Thrift通过定义一个中间定义语言和Thrift代码生成工具,生成指定语言的代码。目前,Thrift支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml的代码生成。
简单分析其机理,Thrift就是实现C/S模式,通过代码生成工具将接口定义文件生成服务器端和客户端代码(可以为不同语言),从而实现服务端和客户端跨语言的支持。
(2)从源码安装Thrift的时候,也像通常的软件安装过程一样,通过configure → make → make install 的过程就可以完成。但安装过程比较烦人,我遇到了一个又一个的问题,总的来说还是比较繁琐的,特别记下来:
Thrift在configure的时候提示找不到php-config的话,需要手动指定其路径(如果没装PHP则需安装)。
PHP 5.3.4安装的过程中,configure的时候出现error,提示找不到libxml2,于是我安装了libxml2-devel-2.6.26-2.1.2.7.i386.rpm。
你还需要预先安装libevent库,我安装的是libevent-2.0.9-rc版本。
文章来源:http://www.codelast.com/
如果你没有安装Boost就执行Thrift的configure,则会看到下面的提示:
Building C++ Library ......... : no
此时,如果你make,也得不到Thrift的C++库。
以默认参数安装了Boost之后(我安装的是1.35.0版本),configure的时候就会看到下面的提示:
Building C++ Library ......... : yes
然后重新开始make。
文章来源:http://www.codelast.com/
到了某一步,如果提示下面的错误:
src/protocol/fastbinary.c:20:20: error: Python.h: No such file or directory
(中间一堆的错误,此处省略)
error: command 'gcc' failed with exit status 1
这是怎么回事呢?打开 lib/py/src/protocol/fastbinary.c 文件,看看第一行未注释的代码:
#include <Python.h>
说明在系统路径中要能找到Python.h文件,而这个文件,是在你安装了python开发包之后才有的,所以,去安装然后再make吧。
我安装的包:python-devel-2.4.3-24.el5.i386.rpm
文章来源:http://www.codelast.com/
在成功make了之后,可以看到输出的提示:
Build complete.
然后再make install,就可以在 /usr/local/lib/ 下(依系统不同,目录也不一定是这个)找到Thrift的库文件啦:
-rw-r--r-- 1 root root 5762970 Dec 15 17:41 libThrift.a
-rwxr-xr-x 1 root root 949 Dec 15 17:41 libThrift.la
-rw-r--r-- 1 root root 468526 Dec 15 17:41 libThriftnb.a
-rwxr-xr-x 1 root root 963 Dec 15 17:41 libThriftnb.la
lrwxrwxrwx 1 root root 20 Dec 15 17:41 libThriftnb.so -> libThriftnb.so.0.0.0
lrwxrwxrwx 1 root root 20 Dec 15 17:41 libThriftnb.so.0 -> libThriftnb.so.0.0.0
-rwxr-xr-x 1 root root 339359 Dec 15 17:41 libThriftnb.so.0.0.0
lrwxrwxrwx 1 root root 18 Dec 15 17:41 libThrift.so -> libThrift.so.0.0.0
lrwxrwxrwx 1 root root 18 Dec 15 17:41 libThrift.so.0 -> libThrift.so.0.0.0
-rwxr-xr-x 1 root root 3308490 Dec 15 17:41 libThrift.so.0.0.0
-rw-r--r-- 1 root root 184672 Dec 15 17:41 libThriftz.a
-rwxr-xr-x 1 root root 956 Dec 15 17:41 libThriftz.la
lrwxrwxrwx 1 root root 19 Dec 15 17:41 libThriftz.so -> libThriftz.so.0.0.0
lrwxrwxrwx 1 root root 19 Dec 15 17:41 libThriftz.so.0 -> libThriftz.so.0.0.0
-rwxr-xr-x 1 root root 145732 Dec 15 17:41 libThriftz.so.0.0.0
文章来源:http://www.codelast.com/
然后就可以开始你的Thrift C++开发之旅了!
在RHEL上安装Thrift(支持C++)的若干问题 » 编码无悔 / Intent & Focused的更多相关文章
- 在CentOS或RHEL上安装Nux Dextop仓库
介绍 Nux Dextop是类似CentOS.RHEL.ScientificLinux的第三方RPM仓库(比如:Ardour,Shutter等等).目前,Nux Dextop对CentOS/RHEL ...
- 在Mac OS X 10.9上安装 Thrift 0.9.1
Thrift 0.9.1 官方文档中对于Mac OS X上的安装描述适合 10.8,但不适用于10.9. Homebrew macport 默认都不能在 10.9上安装Thrift 0.9.1成功 ...
- CentOS 6安装thrift支持erlang开发
早前,在我的博文thrift多平台安装介绍了如何在debian/ubuntu下面安装thrift,并支持erlang开发的.而在CentOS平台下,并没有成功安装.经过不断摸索,终于成功了,这篇博文就 ...
- 理解RHEL上安装oracle的配置参数
无论安装什么版本的oracle,在安装之前,都需要配置 /etc/pam.d/login /etc/profile /etc/security/limits.conf这三个文件 那这三个文件究 ...
- 理解RHEL上安装oracle的配置参数 :/etc/security/limits.conf, /etc/profile, /etc/pam.d/login
无论安装什么版本的Oracle,在安装之前,都需要配置 /etc/pam.d/login /etc/profile /etc/security/limits.conf这三个文件 那这三个文件究 ...
- 在 CentOS 和 RHEL 上安装 Puppet 服务器和客户端
https://linux.cn/article-3959-1.html https://docs.puppet.com/
- .NET平台系列27:在 Linux 上安装 .NET Core/.NET5/.NET6
系列目录 [已更新最新开发文章,点击查看详细] .NET 在不同的 Linux 发行版上可用. 大多数 Linux 平台和发行版每年都有一个主要版本,并提供用于安装 .NET 的包管理器. 本 ...
- 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2
MongoDB(名称取自"huMONGOus")是一个有着全面灵活的索引支持和丰富的查询的数据库.MongoDB通过GridFS提供强大的媒体存储.点击这里获取MongoDB的更多 ...
- Oracle10g/11g 在SUSE/RHEL上的安装与配置
在过去对众多项目的支撑过程中,Oracle作为首选数据库,其安装与配置过程成了重复性最多的工作之一.在此,我进行了总结,并分享出来,希望能对大家有所帮助.随着Oracle版本的提升,从9i -> ...
随机推荐
- MSSQL - 存储过程取出5条热点新闻
USE [DB_News] GO /****** Object: StoredProcedure [dbo].[SelectHotNews] Script Date: 2015/7/8 13:34:4 ...
- fzu 2035 Axial symmetry(枚举+几何)
题目链接:fzu 2035 Axial symmetry 题目大意:给出n个点,表示n边形的n个顶点,判断该n边形是否为轴对称图形.(给出点按照图形的顺时针或逆时针给出. 解题思路:将相邻两个点的中点 ...
- JENKINS 打包发布脚本
#!/bin/bash #nohup bash check_new_pkgs_dev.sh & #steps below: ##发布的机器上运行这个脚本 #定时遍历发布包存放路径 #1.遍历所 ...
- ubuntu12.04 安装 opencv 2.4.8(非源代码编译)
一:安装所须要的各种库,如GTK3.xx 安装GCC:sudo apt-get install build-essential 安装CMakesudo apt-get install cmake su ...
- Canny边缘检測算法原理及其VC实现具体解释(一)
图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般能够看作是一个阶跃,既从一个灰度值在非常小的缓冲区域内急剧变化到还有一个灰度相差较大的灰度值.图象的边缘部分集中了图象的大部分信息,图 ...
- [置顶] 单键模式的C++描述
设计模式-单键(Signelton):其实单键的设计模式说来很简单,说的直白一点就是程序运行过程中保证只有一个实例在运行而已.在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例, ...
- abap四舍五入的函数
VALUE '1.6'. DATA p2 TYPE i . CALL FUNCTION 'ROUND' EXPORTING DECIMALS = input = p1 SIGN = '+ ' IMPO ...
- 【Unity3D】【NGUI】UICamera
原文:http://www.tasharen.com/forum/index.php?topic=6711.0 NGUI讨论群:333417608 概述 UICamera这个名字不是很合适,保留的原因 ...
- jquery用div模拟一个下拉列表框
原文 jquery用div模拟一个下拉列表框 今天分享一个用我自己用jquery写的,用div模拟下拉列表select,这个效果网上有很多,但是写一个有自己思路的代码效果,更有成就感,先看截图: 自我 ...
- C++中字母大写和小写转换实现的优化
C++中字母大写和小写转换实现的优化 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 在本文中所有以转换为小写为例. 从推荐复用代 ...