花了一下午在 Ubuntu1204 下编译安装Ice3.5.0,过程比较顺利,和以前编译vlc什么的比起来,得算是愉快的经历了。回想一下由两个原因,一是第三方依赖库少(我只编译了cpp代码,所以只有5个依赖库),第二是第三方依赖库要么可以通过apt-get轻松获得,要么直接提供源码(且源码可以直接编译,不用在找第三方的第三方库。。。)。
回到主题,编译之前参考了这篇文章,为了方便阅读相关的下载地址会在本文中再次贴出。
我只编译了cpp部分的代码,所以下文均以仅编译cpp部分代码为前提。
安装第三方库
首先下载第三方库,地址:http://www.zeroc.com/download/Ice/3.5/ThirdParty-Sources-3.5.0.tar.gz ,下载后保存到任意目录后解压缩(命令: tar xvfz ThirdParty-Sources-3.5.0.tar.gz ),得到的文件里面有用的只有mcpp-2.7.2.tar.gz和db-5.3.21.NC.tar.gz,后面的操作参考README中的介绍,分两步,概括如下:
1.打补丁
mcpp:解压mcpp-2.7.2.tar.gz到当前目录(命令:tar xvfz mcpp-2.7.2.tar.gz),然后执行如下命令
cd mcpp-2.7.2
patch -p0 < ../mcpp/patch.mcpp.2.7.2
cd ..
Berkeley DB:解压db-5.3.21.NC.tar.gz到当前目录(命令同上),然后执行如下命令
cd db-5.3.21.NC
patch -p0 < ../db/patch.db.5.3.21
cd ..
2.编译安装第三方库
cd Ice-3.5.0/cpp
make
make install
Berkeley DB:
cd db-4.8.30.NC/build_unix
../dist/configure --prefix=/usr --enable-cxx
make #编译
sudo make install #安装
cd ../..
说明:db的默认安装prefix路径是/usr/local/BerkeleyDB.4.6,需要改为/usr,否则make Ice时会找不到路径
mcpp:
cd mcpp-2.7.2
./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
make
sudo make install
cd ..
需要编译的就是这两个了,另外三个可以直接下载
sudo apt-get install bzip2 expat libbz2-dev libcurl4-openssl-dev libexpat-dev openssl
这样第三方库就算准备完了。
编译源码
首先从官网下载源码,地址:http://www.zeroc.com/download/Ice/3.5/Ice-3.5.0.tar.gz,解压缩到任意目录,执行:
cd Ice-3.5.0/cpp
make
sudo make install
最后配置相应环境变量
export PATH=/opt/Ice-3.5.0/bin:$PATH
export LD_LIBRARY_PATH=/opt/Ice-3.5.0/lib:$LD_LIBRARY_PATH
ok, 试试输入 icegridadmin --version, 是不是成功了呢:)