linux下编译Zero C ICE
0、简介
ZeroC ICE 是指ZeroC公司(www.zeroc.com)的ICE(Internet Communications Engine)中间件平台。
目前ICE平台中包括Ice,Ice-E,Ice Touch。
Ice为主流平台设计,包括Windows和Linux,支持广泛的语言,包括C++,Java,C#(和其他.Net的语言,例如Visual Basic),Python,Ruby,PHP和ActionScript。也包括所有的ICE服务,例如Ice Grid,IceStorm等。
Ice-E是Ice在资源受限的平台上的一个实现,支持C++和嵌入式操作系统,例如Windows CE,Linux。Ice-E本身不包含任何服务,但是可以利用在Ice上提供的各种服务。因此,通过Ice-E,移动设备也能无缝的集成到分布式系统中。
Ice Touch是为iphone和ipod touch开发的版本,包括Object-C映射,支持Iphone OS,并为MAC OS X开发图形界面应用程序提供完整的Cocoa框架的访问。
本文由乌合之众瞎写,如有错漏之处,敬请指正。http://www.cnblogs.com/oloroso/
1、下载源码
git clone https://github.com/zeroc-ice/ice.git
2、编译和安装
先安装依赖项libmcpp、openssl、lmdb等。
sudo dnf install libmcpp-devel openssl-devel lmdb-devel # defora下安装
sudo apt install libmcpp-dev libssl-dev # debian系下安装
编译并安装
make -j4 # 编译(时间比较久,可以把Makefile中对test的编译注释掉)
make prefix=/opt/zero-c-ice install
上面命令会编译所有支持语言的版本,如果不需要那么多,可以通过修改config/Make.rules来改变支持的语言。
打开config/Make.rules文件,跳到最后,修改supported-languages的值。
例如:
supported-languages ?= cpp python
或者在编译的时候直接指定语言。
make supported-languages='cpp python java js'
make supported-languages='cpp python java js' prefix=/opt/zero-c-ice install
如果需要支持java语言,在编译的时候会去下载gradle工具,所以需要确保能够正常访问https://gradle.org/
如果需要支持python语言,需要安装python开发包(sudo dnf install python-devel)。
如果需要支持javascript语言,需要安装npm的(sudo dnf install npm),此处会安装libuv/nodejs等。这里也需要能够正常连接到外网。
如果需要支持ruby语言,需要安装ruby开发包(sudo dnf install ruby-devel)。
如果需要支持php语言,需要安装php开发包(sudo dnf install ruby-php)。
3、测试
这里可以编写一个小的slice脚步测试一下。
test.ice
/*定义模块test*/
module test{
/*定义自定义结构类型person*/
struct person{
/*字符串类型量 name*/
string name; // 名字
/*整型量 age*/
int age; // 年龄
/*浮点数 weight*/
float weight; // 体重
};
/*定义一个接口,打印person信息*/
interface print{
/*定义打印person的方法*/
void printperson(person p);
};
};
使用slice2cpp来生成C++代码。
slice2cpp test.ice
slice2cpp工具怎么用,可以使用slice2cpp --help来查看。
4、补充 windows下编译ice
windows下编译比较简单。直接打开源码目录下的cpp\msbuild,找到对应版本的VS解决方案文件(例如我是使用的VS2015,则是ice.v140.sln),直接使用Visual Studio打开。然后直接编译即可。
编译的时候需要下载对应的nuget包,所以可能需要联网才行。
编译完成之后将在cpp\lib和cpp\bin目录下生成对应的库和可执行文件。
linux下编译Zero C ICE的更多相关文章
- linux下编译gcc6.2.0
linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- linux下编译安装vim7.4并安装clang_complete插件
linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...
- linux下编译出现空间不足解决办法
linux下编译出现空间不足解决办法 编译内核出现问题: AS .tmp_kallsyms1.o .tmp_kallsyms1.S:2: fatal error: when writing ...
- linux下编译安装curl
linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...
- 如何在Kali Linux下编译Windows Exploit
前言 微软的Windows在企业或是个人应用领域占据着最大的市场份额,在渗透测试过程中你会经常遇到很多Windows的工作站和服务器.另一方面,大多数渗透测试人员主要使用基于Linux的发行版渗透测试 ...
- 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序
如何用javac 和java 编译运行整个Java工程 (转载) http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译安装boost库
linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...
随机推荐
- YAML文件简介
编程免不了要写配置文件,怎么写配置也是一门学问. YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. 本文介绍 YAML 的语法,以 JS-YAML 的实现为例.你可以去 ...
- 【转】windows下mongodb安装与使用整理
转自 :http://www.cnblogs.com/lecaf/archive/2013/08/23/mongodb.html 一.首先安装mongodb 1.下载地址:http://www.mon ...
- apache+jetty 配置web jsp服务器负载均衡
首先,查找中文资料,貌似很少,有一个网友写了点,但是1版本过老,2有些地方有错误. 经过我自己摸索,记录一下.这个图很简洁明了 第一阶段 ,配置jetty 首先从 http://download.ec ...
- JavaScript:RegExp 对象
ylbtech-JavaScript:RegExp 对象 1.返回顶部 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/att ...
- 对于DQN的三大改进 - 这篇讲的好些
可以看这篇文章: https://blog.csdn.net/u013236946/article/details/73161586 这篇也讲的不错: https://www.cnblogs.com/ ...
- 使用C++/libCurl/Jsoncpp读取arcgis wmts 服务(restful模式)
前言: 最近工作需要将arcgis的wmts服务接入我们的3DGis系统平台,要求用户只输入一个rest模式的wmts服务地址,系统即可自动获取并解析其元数据信息,生成wmts图层,并渲染显示.经过多 ...
- 全文检索(SOLR)前端应用浅析 (转)
最近在一个关于知识管理系统中检索的一个功能方案,找到了一个很好的参考应用方案嘎要的分析一下,希望有类似应用的可以交流交流. 提起全文检索,Lucene的大名估计地球人都知道,通过这么多年的发展,外围的 ...
- Service 简介 启动方式 生命周期 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- jQuery实现锚点跳转(就一行代码)
/* 锚点跳转 */ function anchor(p,fn) { $("html,body").animate({ scrollTop: $("#" + p ...
- Python 各种测试框架简介(三):nose
转载:https://blog.csdn.net/qq_15013233/article/details/52527260 摘要 这里将从(pythontesting.net)陆续编译四篇 Pytho ...