zoukankan      html  css  js  c++  java
  • ICE在Linux下的安装

    Ice的安装

    从年初的一期《程序员》杂志上了解到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++的人,一时还找不着北呢。

  • 相关阅读:
    shell笔记
    全引用与部分引用
    R语言 EFA(探索性因子分析)
    Markdown 基本使用
    Oracle截取字符串和查找字符串
    ggplot画基本图形类型
    ggplot画图笔记
    用R语言 画条形图(基于ggplot2包)
    Git基本操作
    R语言为数据框添加列名或行名
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318934.html
Copyright © 2011-2022 走看看