找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5044|回复: 1

Ice的安装

[复制链接]
发表于 2008-9-21 18:27:34 | 显示全部楼层 |阅读模式
从年初的一期《程序员》杂志上了解到ICE以后,因为其对比于 CORBA具有简单、高效、易用的特点,所以一直都有留意。之前也有一段时间下载了Ice 1.x版本和相应的文档来研究,但因工作忙,中断了一段时间。
Ice的主页: http://www.zeroc.com
这几天工作稍微轻松点,有点时间,就继续研究Ice 2.1.1版本。在学习的过程中,免不了要安装的。这篇文章就是想说说安装的问题。
其实Ice-2.1.1安装算是蛮简单的。因为像比较新的Linux操作系统上,Ice所需的辅助软件包都已经有了,如果你装的系统确实没有这些软件,可以在Ice的下载页面上下载到第三方的软件包,然后安装,安装这些都不难,主要是要看软件相应的readme和install类型的文档。
我在Fedora 3上安装,上面带了expat, openssl, db4.2, bzip2,所以基本不用装第三方的软件。唯一一个问题是:Fedora 3上的db4.2没有安装db的C++开发库,所以需要重新编译安装db。
===========  STEP 1:安装db  =============================
安装db的文档在db包的docs里面有html格式的说明文档,很简单。解开db的tar/zip包后:
$cd db-ver
$cd build_unix
$../dist/configure --prefix=/usr --enable-cxx
$make
$su
#make install
==========  STEP 2:安装Ice 2.1.1包  ====================
解开Ice-2.1.1.tar.gz包后
$cd Ice-2.1.1
$vi config/Make.rules   #修改prefix为/usr
$make
$su
#make install
这样Ice就安装好了。
==========  STEP 3:安装IcePy ============================
因为自己想结合之前学习python,刚好ice也支持python语言,所以决定安装IcePy包,如果你只用C++开发的话,IcePy可以不装。解开IcePy.xx.tar.gz后
$cd IcePy-2.1.1
$vi config/Make.rules
增加一行在文件的最前面:
ICE_HOME=/usr
修改prefix=/usr
然后用root权限
#ln -s /usr/lib/python2.4 /usr/python  #不同版本的python,/usr/lib/pythonx.x目录有点不同
$make
$su
#make install
#ln -s /usr/lib/IcePy.so /usr/lib/python2.4/IcePy.so
至于用两个ln建立两个连接主要是省去运行Ice python程序的时候,设置环境变量的麻烦。因为Ice Python的文件都安装到了python的缺省目录下了,这样会方便很多。
附一个C++编译的问题:
由于我按照书上的例子来学习Ice,所以文件服务器的服务器端那章里面的NodeI类定义如下:
        class NodeI: virtual public Node {
        public:
                virtual std::string name(const Ice::Current &) const;
                NodeI(const std::string &, const DirectoryIPtr &parent);
                static Ice::ObjectAdapterPtr _adapter;
        private:
                const std::string _name;
                DirectoryIPtr _parent;
                NodeI(const NodeI &);
                void operator=(const NodeI &);
        };
里面有static的类成员_adapter,由于久未用C++,不记得要在.cpp实现文件里加:
Ice::ObjectAdapterPtr Filesystem::NodeI::_adapter;
定义,所以g++连接老报没有定义_adapter的错误,郁闷了一段时间才记起来。而书上的例子并没有提到定义这个东西,如果你是C++新手或像我这样久未用C++的人,一时还找不着北呢。
转载自:[url=http://gigaboy.bokee.com/]http://gigaboy.bokee.com[/url]
发表于 2009-3-17 14:29:51 | 显示全部楼层
这文章老点了

ICE都发展了:)

不知道国内还有多少人在用这个
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-29 05:06 , Processed in 0.012171 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表