linux下編譯Zero C ICE


0、簡介

ZeroC ICE 是指ZeroC公司(www.zeroc.com)的ICE(Internet Communications Engine)中間件平台。

目前ICE平台中包括IceIce-EIce 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、編譯和安裝

先安裝依賴項libmcppopenssllmdb等。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM