Xenial 下源码编译Ice3.6
来源:互联网 发布:如何禁止某个软件运行 编辑:程序博客网 时间:2024/05/21 15:35
下载安装Ice: https://zeroc.com/distributions/ice/3.6 (3.7版本改成3.7即可)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 5E6DA83306132997sudo apt-add-repository "deb http://zeroc.com/download/Ice/3.6/ubuntu$(lsb_release -rs) stable main"sudo apt-get updatesudo apt-get install zeroc-ice-all-runtime zeroc-ice-all-dev
也可以从git仓库pull示例代码
A collection of sample programs are available on GitHub. You can download them by running the following command:
git clone -b 3.6 https://github.com/zeroc-ice/ice-demos.git
测试用例
建立一个print目录,在该目录下:
建立ice文件
demo.ice
module demo{ interface printer { void printerstr(string msg); };};
运行下面的命令,会在print目录下生成demo.h和demo.cpp。
$slice2cpp demo.ice$ls print/demo.ice demo.h demo.cpp
编写ice服务端server.cpp
#include <Ice/Ice.h>#include <demo.h>using namespace demo;using namespace std;class PrinterI : public printer { public: virtual void printerstr(const string & s, const Ice::Current &);};voidPrinterI::printerstr(const string & s, const Ice::Current &){ cout << s << endl;}intmain(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) ic->destroy(); return status;}
编写ice客户端client.cpp
#include <Ice/Ice.h>#include <demo.h>using namespace demo;using namespace std;intmain(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->printerstr("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;}
Finally:
编译并运行客户端和服务端,如果hello world打印出来,那么就是安装成功了。
$ g++ -I. -o server demo.cpp server.cpp -lIce -lIceUtil -lpthread$ g++ -I. -o client demo.cpp client.cpp -lIce -lIceUtil -lpthread$ ./server
$./client
Hello World!
阅读全文
0 0
- Xenial 下源码编译Ice3.6
- Ubuntu14.04下源码编译安装ice3.5.1
- ZeroC ICE3.6b编译安装
- ice3.3.1在windows下的编译以及工程搭建
- Ice3.4.1编译安装
- Ubuntu1204 编译安装Ice3.5.0
- UBUNTU下安装ICE3.4.1
- ubuntu下安装Ice3.4.2
- Ubuntu14.04下Hadoop2.6源码编译
- Ubuntu下编译源码
- eclipse环境下安装ice3.4.1和slice2java
- ubuntu15.04下搭建Ice3.4.1开发环境
- Ubuntu下编译Android源码
- 10.04下编译Android源码:
- 10.04下编译Android源码
- win7下mysql源码编译
- windows下编译postgresql源码
- Linux下编译Android源码
- mysql存储过程之错误处理
- log4j2.pom
- laravel笔记-模板
- CSS圣杯布局(三栏布局)
- 背包问题
- Xenial 下源码编译Ice3.6
- 作为一名资深的JAVA工程师需要了解的知识汇总
- tools.js
- cgywin下安装python注意windows下卸载的crypto和安装pycrypto失败
- linux系统如何创建快捷方式
- 最小的K个数
- 时间格式化 几分钟前 几小时前 几天前
- bzoj 4292: [PA2015]Równanie 暴力枚举
- IntelliJ 相关产品注册码