ICE开发环境搭建

mark一下
转载自 http://bbs.chinaunix.net/viewthread.php?tid=1609079

好久没发帖了,来C++版打个广告
关于ICE的介绍我也说不了,大家百度看看就行了。
试用方法和一些slice的语法可以参考
http://masterkey.javaeye.com/blog/183307
ZeroC ICE之旅------C++
从今年6月份开始接触ICE,用了几个月发现对于面向对象的通讯方面的开发来说,确实很方便。咱也不是五毛专门来做广告的。
废话不多说,就挑点印象比较深的说说。

(1):模型简单,通讯采用回调函数的方式设计,或者说是RPC,远程过程调用也行,说最朴素点,就是这样,A机器和B机器通过
一个用slice语法书写的ice文件来定义通讯中的接口和对象(也就是数据结构和函数接口),比如定义了一个接口f,对象o,当客户端A调用
f(o)这个方法时,服务端B的f(o)方法就会被调用,当然B端f(o)中的数据是A端传递的;当然,对于发起端A来说,f这个接口是通过ice文件定义
自动生成的,不需要任何处理,只需要在通讯时,构造好数据对象,直接调用就行。对于服务端,需要定义一个消息处理函数f,也就是说需要实现ice文件中定义的接口,这样,在客户端调用时,服务端就能对数据按照自己理想的方式进行处理了。

(2):试用方便,稳定,支持多平台多语言互通。要通讯时只需要构造好通讯约定好的proxy字符串,字符串包含了通讯目的地IP,端口,试用的协议,超时机制等等,很多配置,可以阅读ICE的文档。

(3):感受,如果不是非要用C语言完成工作,我现在基本上都会选择ICE,呵呵,当然,也有人把ICE的C++接口封装供C来调用。说句偷懒而且很有可能被BS的话,现在宁可忘记socket,呵呵,自己之前做过一个东西,用TCP做的还多平台接口,前几天全部抽空在周末改成ICE的了,windows的客户端和linux服务器程序通讯,基本上不用考虑不通OS引起的差异。代码结构简化了好多,只需要把注意力放在业务处理上。

最后把自己整理得一个ICE的安装文档(也是借鉴互联网上别的朋友的帖子,我的是64位机器上的)发上来,感兴趣的朋友可以参考下。
软件包:
bzip2系统已经自带,不需安装
Ice-3.3.1.tar.gz
expat-2.0.1.tar.gz           
openssl-0.9.8k.tar.gz
db-4.6.21.NC.tar.gz
mcpp-devel-2.7.2-1ice.src.rpm

安装目录为/usr/local/component

(1)安装mcpp
rpm -i mcpp-devel-2.7.2-1ice.src.rpm
cd /usr/src/redhat/SPECS/
rpmbuild -bp mcpp-devel.spec
cd /usr/src/redhat/BUILD/mcpp-2.7.2/
然后就可以进行安装了。
./configure --prefix=/usr/local/component/mcpp CFLAGS=-fPIC -enable-mcpplib -enable-shared
make
make install
如果是64位机器的话, 还要把安装目录下的
lib目录的内容拷贝到安装目录下的一个新建的名为lib64目录下。
(2)安装expat
tar -zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --prefix=/usr/local/component/expat
make
make install
(3)安装OpenSSL
tar -zxvf openssl-0.9.8k.tar.gz
cd openssl-0.9.8k
./config --prefix=/usr/local/component/openssl
make
make install
(4)安装DB
tar -zxvf tar -zxvf db-4.6.21.NC.tar.gz
cd cd db-4.6.21.NC
cd build_unix
../dist/configure --prefix=/usr/local/component/db -enable-cxx
make
make install
同样,DB的lib目录也拷贝一份lib64
(5)ICE安装
tar -zxvf Ice-3.3.1.tar.gz
cd Ice-3.3.1
cd cpp
vi config/Make.rules
修改Make.rules里面的各个第三方软件的路径
具体的有:
prefix                   ?= /usr/local/component/Ice-$(VERSION)
embedded_runpath_prefix  ?= /usr/local/component/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
DB_HOME         ?= /usr/local/component/db
EXPAT_HOME              ?= /usr/local/component/expat
OPENSSL_HOME            ?= /usr/local/component/openssl
MCPP_HOME               ?= /usr/local/component/mcpp
保存
然后
make
make install
make test

你可能感兴趣的:(环境搭建)