1、前言
ICE-E是ICE在嵌入式上运行的一个版本,与ICE比较如下:
Category
Ice 3.3.0
Ice-E 1.3.0
Thread Pool concurrency model
Bidirectional connections
Active connection management (ACM)
Request batching
Support for UDP and SSL
Objects by Value
Implicit contexts
Servant locators
Default servants
Collocation optimization
Asynchronous method invocation (AMI)
Asynchronous method dispatch (AMD)
Dynamic Ice
Dispatch interceptors
Thread priorities
Protocol compression
Application and service convenience classes
Runs on Windows and Linux
Runs on MacOS X, Solaris and HP-UX
Runs on Windows Mobile
Tested on Embedded Linux devices
Shared libraries
Static libraries
Build-time selectable feature support
作者邮件:
目前官方宣称支持的平台:
Run-Time PlatformDevelopment PlatformCompilerWindows Mobile 6 Professional (ARMV4i)Windows XP (x86)Visual C++ 2005 SP1 and 2008 with Smart Device supportWindows XP (x86) and Vista (x86 and x64)Same as run timeVisual C++ 2005 SP1 and 2008Gumstix Linux Buildroot revision 1364Red Hat Enterprise Linux 5.2 (i386)GCC 4.1.1 cross-compilerRed Hat Enterprise Linux 5.2 (i386 and x86_64)Same as run timeGCC 4.1.2
可以看到,嵌入式linux官方仅说明了可以运行在Gumstix Linux系统上,并没有说明可支持其他linux系统,我们只好做个实验验证一下。
2、准备工作:
1)安装交叉编译环境arm-linux-gcc3.4.1
2)安装mcpp2.7 ,下载网站http://mcpp.sourceforge.net;
3)下载ICE-E1.3.0
我安装的环境是centos5.2
3、安装
$ tar xvfz IceE-1.3.0.tar.gz
$ cd IceE-1.3.0
$ make configure
$ make
4、交叉编译
$ export CXX=arm-linux-c++
$ export AR=arm-linux-ar
更改cppe/config/Make.rules
将#GUMSTIX = yes前面的#号去掉
修改 IceE-1.3.0\cppe\src\IceE\Time.cpp 126行到134行间内容,使其与115行到126行内容相同。
在IceE-1.3.0目录下
$ make clean
$make
5、试运行
将IceE-1.3.0\cppe\demo\IceE\hello 目录中的 client 目录、server目录拷贝到arm实验板上,同时把IceE-1.3.0\cppe\lib中文件复制到arm实验上。
在试验板linux中运行
$export LD_LIBRARY_PATH=lib文件存放目录:$LD_LIBRARY_PATH
然后就可运行示例程序server和client程序了。
作者邮件:转载注明作者和出处