背景:项目需要,初期在windows上用的ICE,POCO和protobuf库移植到arm-linux上去运行。
闲话不说了进入正题:
1. ICE3.3.1
编译大体过程:
1) 先编译出IceUtil.so
2) 利用IceUtil.so编译出ICE的解释器程序slice2cpp,slice2java等。
3) 用解释器生成相关的.cpp和.h代码用来编译其他库。
1.1 在linux redhat enterparse6.1 上编译ICE3.3.1/3.4.2(过程一样)。
1.1.1 下载ICE3.3.1 和编译ICE需要的一些库
ThirdParty-Sources-3.3.1.tar.gz
注:修改相关文件夹权限或者用root用户操作
解压tar -xvf ./ThirdParty-Sources-3.3.1.tar.gz
1) 安装mcpp
mkdir /usr/local/src/ICE-3.3.1/
tar -xvf ./mcpp-2.7.2.tar.gz -C/usr/local/src/ICE-3.3.1/
cd /usr/local/src/ICE-3.3.1/mcpp-2.7.2/
./configure --prefix=/usr/local/ICE-3.3.1/mcpp-2.7.2/ CFLAGS=-fPIC -enable-mcpplib -disable-shared
make
make install
make clean
2) 安装BerkeleyDB
tar -xvf ./db-4.6.21.NC.tar.gz -C/usr/local/src/ICE-3.3.1/
cd /usr/local/src/ICE-3.3.1/db-4.6.21.NC/build_unix/
../dist/configure --prefix=/usr/local/ICE-3.3.1/BerkeleyDB-4.6.21/ -enable-cxx
make
make install
make clean
3) 安装bzip2
tar -xvf ./bzip2-1.0.5.tar.gz -C/usr/local/src/ICE-3.3.1/
修改Makefile,将PREFIX指向/usr/local/ICE-3.3.1/bzip2-1.0.5
make
make install
make clean
4) 安装expattar -xvf ./expat-2.0.1.tar.gz -C/usr/local/src/ICE-3.3.1/
./configure --prefix=/usr/local/ICE-3.3.1/expat-2.0.1/
make
make install
make clean
5) 安装openssltar -xvf ./openssl-0.9.8g.tar.gz -C/usr/local/src/ICE-3.3.1/
./config --prefix=/usr/local/ICE-3.3.1/openssl-0.9.8g/
make
make install
make clean
6) 安装Icetar -xvf ./Ice-3.3.1.tar.gz -C/usr/local/src/ICE-3.3.1/
修改vi ./cpp/config/Make.rules里面的一些路径
prefix ?= /usr/local/ICE-3.3.1/ICE-$(VERSION)
embedded_runpath_prefix ?= /usr/local/ICE-3.3.1/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
OPTIMIZE = yes #编译不加-g 优化编译
BZIP2_HOME ?= /usr/local/ICE-3.3.1/bzip2-1.0.5
DB_HOME ?= /usr/local/ICE-3.3.1/BerkeleyDB-4.6.21
EXPAT_HOME ?= /usr/local/ICE-3.3.1/expat-2.0.1
OPENSSL_HOME ?= /usr/local/ICE-3.3.1/openssl-0.9.8g
MCPP_HOME ?= /usr/local/ICE-3.3.1/mcpp-2.7.2
:wq退出vi
cd ./cpp
make
make install
make clean
注:路径根据自己情况随意设计,我只是把我的例子写出来。