ubuntu安装ICE记录

背景
本文档介绍在unbuntu环境下如何安装ICE,并用C++写一个ICE应用

ICE简介
ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个流行的面向对象的工具包,使我们能够以最小的代价构建分布式应用程序。ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去考虑这样的细节:打开网络连接、网络数据传输的序列化与反序列化、连接失败的尝试次数等。

第一部分
下载
源码下载链接:戳这里

编译安装
tar zxvf ice-3.6.0.tar.gz
cd ice-3.6.0/cpp
make
make install

所遇到的问题&解决方法
1)ConnectionI.cpp:28:19: error: bzlib.h: 没有那个文件或目录
sudo apt-get install libmcpp-dev

2)../Freeze/TransactionI.h:15:20: error: db_cxx.h: 没有那个文件或目录
安装Berkeley DB,具体可参考:戳这里
BDB环境配置:
export DB_HOME=/usr/local/BerkeleyDB.4.6
PATH=$PATH:$DB_HOME/bin
. .bashrc

第二部分
1.创建ICE文件Printer.ice

module Demo {
    interface Printer {
        void printString(string s);
    };
};

2.Compiling a Slice Definition for C++
$ slice2cpp Printer.ice

3.创建Server.cpp

#include <Ice/Ice.h>
#include <Printer.h>

using namespace std;
using namespace Demo;

class PrinterI : public Printer {
public:
virtual void printString(const string& s, const Ice::Current&);
};

void
PrinterI::
printString(const string& s, const Ice::Current&)
{
cout << s << endl;
}

int
main(int argc, char* argv[])
{
int status = 0;
Ice::CommunicatorPtr ic;
try {
ic = Ice::initialize(argc, argv);
Ice::ObjectAdapterPtr adapter =
ic->createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");
Ice::ObjectPtr object = new PrinterI;
adapter->add(object, ic->stringToIdentity("SimplePrinter"));
adapter->activate();
ic->waitForShutdown();
} catch (const Ice::Exception& e) {
cerr << e << endl;
status = 1;
} catch (const char* msg) {
cerr << msg << endl;
status = 1;
}
if (ic) {
try {
ic->destroy();
} catch (const Ice::Exception& e) {
cerr << e << endl;
status = 1;
}
}
return status;
}

4.创建Client.cpp

#include <Ice/Ice.h>
#include <Printer.h>

using namespace std;
using namespace Demo;

int
main(int argc, char* argv[])
{
int status = 0;
Ice::CommunicatorPtr ic;
try {
ic = Ice::initialize(argc, argv);
Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter:default -p 10000");
PrinterPrx printer = PrinterPrx::checkedCast(base);
if (!printer)
throw "Invalid proxy";

printer->printString("Hello World!");
} catch (const Ice::Exception& ex) {
cerr << ex << endl;
status = 1;
} catch (const char* msg) {
cerr << msg << endl;
status = 1;
}
if (ic)
ic->destroy();
return status;
}

5.测试

1.环境配置
export ICE_HOME=/opt/Ice-3.6.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DB_HOME/lib64:/home/bran/ice-3.6.0/cpp

$ c++ -I. -I$ICE_HOME/include -c Printer.cpp Server.cpp
$ c++ -o server Printer.o Server.o -L$ICE_HOME/lib -lIce -lIceUtil

$ c++ -I. -I$ICE_HOME/include -c Printer.cpp Client.cpp
$ c++ -o client Printer.o Client.o -L$ICE_HOME/lib -lIce -lIceUtil

时间: 2024-11-03 04:01:09

ubuntu安装ICE记录的相关文章

我的Ubuntu安装使用openCV记录

博主QQ:1356438802 本来我想在ubuntu虚拟机上做openCV研究的,因为在Ubuntu做出来的程序更方便移植到安卓(这是我的终极目标),而且我只有一台电脑,没法装Ubuntu物理机.但是后来发现虚拟机跑起来有点卡,影响心情.后来还是换成先在windows上面搞吧,所以就有了我另外的那些windows安装openCV文章. 以下是我的安装使用记录 20160123 1. 准备: openCV for unix 2.4.10 虚拟机ubuntu 12.04LTS 64bit a. 修

ubuntu下针对php的thrift 安装折腾记录

此安装针对php开发配置 按照官方的文档做法,会出现各种bug,总结正确的安装方法: STEP1: 安装必要的依赖插件: sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev sudo apt-get install php5-dev php5-cli ph

python 点滴记录6:ubuntu 安装pycharm

想在ubuntu下学习python开发,IDE准备使用pycharm.记录一下安装过程: 要想运行pycharm,需要有java环境,因为pycharm是用java编写的.ubunutn系统默认安装的是openjdk,而我们需要的是oracle java. 搜索oracle的java软件包: apt-cache search oracle-java 搜不到任何包. 搜索openjdk包: apt-cache search java7 出现类似以下安装包: openjdk-7-jdk - Open

ubuntu 1604安装docker-ce 记录

以前在linux 内核为2.x的低版本中安装过docker,但是很多功能特性都无法使用,本次是在ubuntu 16.04上安装,记录安装过程,方便后续查阅. 一.安装前准备: 1. 安装包,允许 apt 命令 HTTPS 访问 Docker 源. $ sudo apt-get install  apt-transport-https  ca-certificates  curl software-properties-common 2. 添加 Docker 官方的 GPG $ curl -fsS

[转]Caffe安装过程记录(CentOS,无独立显卡,无GPU)

Caffe安装过程记录(CentOS,无独立显卡,无GPU) 原文地址:http://www.aiuxian.com/article/p-2410195.html 参考资料: http://www.tuicool.com/articles/uiuA3e Caffe 安装配置(CentOS + 无GPU) http://blog.sina.com.cn/s/blog_990865340102vewt.html caffe 安装配置(CentOS 6.5 + 无GPU) http://www.cnb

第21篇 ubuntu安装ftp服务器(转载)

ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vsftpd的配置文件.此类配置文件通常位于 /etc 目录下. ~$ sudo gedit /etc/vsftpd.conf 原文件中不少指令被注释,只要启用部分即可,一下是启用的命令(配置文件中对每一条都有具体说明) listen=YES # 服务器监听#anonymous_enable=YES #

ubuntu安装配置Apache2和SVN

由于新公司要搭建新的svn,我因为之前有linux的基础,而且确实在linux中搭建SVN服务器更好维护也更稳定,所以主动接下了任务,然后在网上找了很多资料,发现都不太完整而且资料比较老,下面将自己的搭建过程做个记录,以供其他朋友们做参考 ubuntu安装配置Apache2和SVN 我习惯进入root下操作,所以首先 第一步:安装apache2,subversion,libapache2-svn apt-get install apache2 apt-get install subversion

Ubuntu安装配置Mysql

Ubuntu安装配置Mysql 三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多. 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例. 3. 二进制包安装:安装完成已经自动配置好环境变量,可以直接使用mysql命令 网上安装和二进制

ubuntu安装和查看已安装

比如apt-cache show geditapt-cache show vim 说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法. 一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 …; (2)修复安装:apt-get -f install softname1 soft