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
目錄下生成對應的庫和可執行文件。