编译ICE
以Ice.
3.2.1
的编译为例作简单步骤介绍。Linux较为简单,Window上略麻烦,详见源码包中的编译说明。
目前Ice只支持动态库方式,不能编译成静态库。
一.win32平台
1. 将Ice源码安装或解压到指定目录
这里假定为D:/Ice-
3.2.1
,设ICE_HOME=D:/Ice-3.2.1。
ICE在Win32下编译不使用工程文件,采用命令行方式。$(ICE_HOME)/Makefile.mak是nmake使用的编译入口文件,$(ICE_HOME)/config/Make.rules.mak是编译选项设置文件,被$(ICE_HOME)/Makefile.make引用。
2.选项设定
1) 设定编译模块
Makefile.mak中的SUBDIRS宏决定编译的所有模块,默认值如下:
SUBDIRS = config src include test demo slice doc
如果不需要编译其中的模块,可在宏中将其对应值去除
2)设定源码路径
$(ICE_HOME)/config/Make.rules.mak文件中的宏prefix指定源码路径,默认值
prefix = C:/Ice-$(VERSION)
修改为
prefix = D:/Ice-$(VERSION)
3)设定编译器
$(ICE_HOME)/config/Make.rules.mak文件中的CPP_COMPILER宏指定编译器。
根据本机编译环境指定对应编译器,可选的有VC60, VC71, VC80, VC80_EXPRESS, BCC2006等。
这里使用VS.NET2005
CPP_COMPILER = VC80
3)设定第三方源码目录
所需的第三方源码包有
- STLport
4.6.2
or later (only for Visual C++ 6.0)
-
Berkeley
DB
4.5.20
- expat 2.0
- OpenSSL
0.9.7
or later (OpenSSL 0.9.8 or later recommended)
- bzip2 1.0
$(ICE_HOME)/config/Make.rules.mak文件中的THIRDPARTY_HOME宏指定第三方安装目录,其默认值为:
THIRDPARTY_HOME = C:/Ice-$(VERSION)-ThirdParty-$(TPH_EXT)
实际上等价于
THIRDPARTY_HOME = C:/Ice-$(VERSION)-ThirdParty-$( CPP_COMPILER)
如果使用VC80,则默认安装目录为 D:/Ice-
3.2.1
-ThirdParty-VC80
可将THIRDPARTY_HOME指定为本机的第三方目录,但要注意所有的第三方包都要置于同一目录下(STLPort除外)。
3. 第三方库安装
将对应的第三方包解压到$(THIRDPARTY_HOME)
要注意所有的第三方包都要置于同一目录下(STLPort除外)。
4. 编译
在VS.2005的命令行下,进入ICE_HOME目录,执行nmake /f Makefile.mak
编译完成的库在$(ICE_HOME)/lib下
编译完成的工具在$(ICE_HOME)/bin下
清理使用:
nmake /f Makefile.mak clean
二.Xinux平台
类Linux平台下的编译要容易许多,而且ICE使用的第三方库多半都已经预安装。
其对应使用的Makefile文件是:
$(ICE_HOME)/Makefile和$(ICE_HOME)/config/Make.rules,作用和Win32平台类似。
要编译模块可能需要自定义外,均可使用默认配置
直接在安装目录下执行make即可。
编译完成的库在$(ICE_HOME)/lib下
编译完成的工具在$(ICE_HOME)/bin下注意用make install进行安装。
三.附录:
所需第三方库:
- STLport
4.6.2
or later (only for Visual C++ 6.0)
-
Berkeley
DB
4.5.20
- expat 2.0
- OpenSSL
0.9.7
or later (OpenSSL 0.9.8 or later recommended)
- bzip2 1.0