ICE3.4.2/3.3.1 POCO1.4.2 google-protobuf 在 arm-linux上安装

来源:互联网 发布:淘宝卖的魔兽世界宏 编辑:程序博客网 时间:2024/06/14 09:44

背景:项目需要,初期在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) 安装expat

tar -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) 安装openssl

tar -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) 安装Ice

tar -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

注:路径根据自己情况随意设计,我只是把我的例子写出来。








原创粉丝点击