linux编译ice,linux环境下编译安装ICE

前面我们讲过了在linux环境下通过rpm的方式来安装ICE,这种安装方式可以是比较简单的,自己在安装过程中发现后面PHP无法装在IcePHP.sp模块,也有可能自己在安装过程中某个地方出错了。又尝试通过直接编译的方式去安装ICE,PHP也正常装在了IcePHP.so模块,大功告成,这里记录一下方法。

以安装ICE-3.4.2版本为例,为了方便管理,将ICE相关的软件都安装到/usr/local/ICE-3.4.2/目录下。

一、安装第三方包:ThirdParty-Sources-3.4.2

1、解压安装包

# tar zxvf ThirdParty-Sources-3.4.2.tar.gz

# cd ThirdParty-Sources-3.4.2 2、安装mcpp

# tar zxvf mcpp-2.7.2.tar.gz

# cd mcpp-2.7.2

# ./configure --prefix=/usr/local/ICE-3.4.2/mcpp-2.7.2/ CFLAGS=-fPIC -enable-mcpplib -disable-shared

# make

# make install

3、安装Berkeley DB

Berkeley DB 是一个高性能的,嵌入数据库编程库,和C语言, C++, Java, Perl, Python, Tcl以及其他很多语言都有绑定。

# cd ..

# tar zxvf db-4.8.30.NC.tar.gz

# cd db-4.8.30.NC/build_unix/

# ../dist/configure --prefix=/usr/local/ICE-3.4.2/BerkeleyDB.4.6/ -enable-cxx

# make

# make install

4、安装bzip2

bzip2 是 Julian Seward 开发并按照自由软件/开源软件协议发布的数据压缩算法及程序。

# cd../../

# tar zxvf bzip2-1.0.6.tar.gz

# cd bzip2-1.0.6 修改Makefile,将PREFIX指向/usr/local/ICE-3.4.2/bzip2-1.0.6

# make

# make install 5、安装expat

expat 是一个 XML parsing C library。

# cd ..

# tar zxvf expat-2.0.1.tar.gz

# cd expat-2.0.1

# ./configure --prefix=/usr/local/ICE-3.4.2/expat-2.0.1/

# make

# make install 6、安装openssl

openssl 是 Secure Socket Layer (SSL) binary and related cryptographic tools。

# cd ..

# tar zxvf openssl-0.9.8r.tar.gz

# cd openssl-0.9.8r

# ./config --prefix=/usr/local/ICE-3.4.2/openssl

# make

# make install 二、安装ICE-3.4.2

# tar zxvf Ice-3.4.2.tar.gz

# cd Ice-3.4.2/cpp

# vi config/Make.rules 修改安装包路径:

prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION)

embedded_runpath_prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)

BZIP2_HOME ?= /usr/local/ICE-3.4.2/bzip2-1.0.6

DB_HOME ?= /usr/local/ICE-3.4.2/BerkeleyDB.4.6

EXPAT_HOME ?= /usr/local/ICE-3.4.2/expat-2.0.1

OPENSSL_HOME ?= /usr/local/ICE-3.4.2/openssl

MCPP_HOME ?= /usr/local/ICE-3.4.2/mcpp-2.7.2

# make 编译过程报错:

../../lib/libIce.so: undefined reference to `libiconv'

../../lib/libIce.so: undefined reference to `libiconv_close'

../../lib/libIce.so: undefined reference to `libiconv_open'

collect2: ld 返回 1

make[2]: *** [../../bin/transformdb] 错误 1

make[2]: Leaving directory `/data/software/Ice-3.4.2/cpp/src/FreezeScript'

make[1]: *** [all] 错误 1

make[1]: Leaving directory `/data/software/Ice-3.4.2/cpp/src'

make: *** [all] 错误 1

# make install 安装过程报错:

../../lib/libIce.so: undefined reference to `libiconv'

../../lib/libIce.so: undefined reference to `libiconv_close'

../../lib/libIce.so: undefined reference to `libiconv_open'

collect2: ld 返回 1

make[2]: *** [../../bin/transformdb] 错误 1

make[2]: Leaving directory `/data/software/Ice-3.4.2/cpp/src/FreezeScript'

make[1]: *** [install] 错误 1

make[1]: Leaving directory `/data/software/Ice-3.4.2/cpp/src'

make: *** [install] 错误 1

修改

vim config/Make.rules.Linux 找到143行这里

BASELIBS = -lIceUtil -lpthread -lrt -liconv

在最后面增加-liconv, 执行make和make instll命令等待编译完成.

至此,安装ICE完毕。

3、编译PHP版本

# cd ..

# cd php/

# vim config/Make.rules.php 指定安装包路径:

prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION)

embedded_runpath_prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)

#指定PHP安装路径

PHP_HOME ?= /usr/local/php 安装编译

# make

# make install 4、设置ICE环境变量

# vi /etc/profile

export PHPPATH=/usr/local/ICE-3.4.2/Ice-3.4.2/php/:

export ICE_HOME=/usr/local/ICE-3.4.2/Ice-3.4.2

export PATH=$PATH:$ICE_HOME/bin

export LD_LIBRARY_PATH=$ICE_HOME/lib

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC ICE_HOME 使之生效

source /etc/profile 测试是否成功:

icegridnode --version

icegridadmin --version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值