Linux redhat ICE环境安装

时间:2021-06-21 14:15:32

1.安装64位redhat6.4操作系统(客户机为64位)为软件开发工作站模式。

2.卸载yum源,重新安装为免费的CentOS6.4 yum源(yum能解决软件安装中的包依赖问题,redhat 未注册用户不能使用yum安装软件):

# mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/*.repo.bak

#
删除原有的yum包

# rpm -qa | grep yum|xargs rpm -e --nodeps



# 下载CentOS的yum安装包

Linux redhat ICE环境安装



# 安装yum包

# rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

# rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm

# rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

# rpm -ivh  yum-3.2.29-73.el6.centos.noarch.rpm  yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm




# 添加163的yum源

# cd /etc/yum.repos.d

# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

# sed -i 's/\$releasever/6/g' CentOS6-Base-163.repo



# 清理yum缓存

# yum clean all



# 将服务器上的软件包信息缓存到本地,以提高速度

# yum makecache

3.安装ICE环境:

下载rpm安装包安装ICE环境:不要使用源码安装(太麻烦并且容易出错)。

解压安装包Ice-3.4.2-rhel6-x86_64-rpm.tar.gz(可到官网下载)得到文件:

Linux redhat ICE环境安装

必须安装的软件和软件安装顺序(用yum安装自动解决包依赖问题,安装指令:# yum+空格+install +rpm包名):

db48-4.8.30-1ice.rhel6.x86_64.rpm

db48-utils-4.8.30-1ice.rhel6.x86_64.rpm

ice-3.4.2-1.rhel6.noarch.rpm

ice-libs-3.4.2-1.rhel6.x86_64.rpm

ice-c++-devel-3.4.2-1.rhel6.x86_64.rpm

ice-utils-3.4.2-1.rhel6.x86_64.rpm

ice-servers-3.4.2-1.rhel6.x86_64.rpm

ice-sqldb-3.4.2-1.rhel6.x86_64.rpm

4.设置ICE_HOME环境变量(参考ICE手册和百度)。

5.(可选)安装eclipseIDE和ICE插件:用于编写代码时检查代码错误(IDE编译容易出各种问题,建议使用命令行)。

6.Makefile写法参考百度,常用指令:

生成.o目标文件:

# c++ -I. -I$ICE_HOME/include -c -fPIC North.cpp
InterfaceImpl.cpp IniFile.cpp Tools.cpp transformEncode.cpp

生成OutputStatus.so 共享库文件:

# c++ -I. -I$ICE_HOME/include -shared -o OutputStatus.so North.o
InterfaceImpl.o IniFile.o Tools.o transformEncode.o

生成测试demo可执行文件:

# c++ -I. -I$ICE_HOME/include -o demo.out
StatusInfo.cpp InterfaceImpl.cpp IniFile.cpp Tools.cpp transformEncode.cpp
CallApiDemo.cpp -lIce –lIceUtil

Makefile生成测试demo参考:

NorthDemo.out : CallApiDemo.o InterfaceImpl.o
Tools.o North.o  IniFile.o
transformEncode.o

g++
-o NorthDemo.out -I. -I$ICE_HOME/include CallApiDemo.o InterfaceImpl.o Tools.o
North.o IniFile.o transformEncode.o -lIce -lIceUtil

CallApiDemo.o : CallApiDemo.cpp

c++
-c CallApiDemo.cpp

Tools.o : Tools.cpp Tools.h IniFile.h
transformEncode.h

c++
-c Tools.cpp Tools.h

IniFile.o : IniFile.cpp IniFile.h

c++
-c IniFile.cpp IniFile.h

transformEncode.o : transformEncode.cpp
transformEncode.h

c++
-c transformEncode.cpp transformEncode.h

InterfaceImpl.o : InterfaceImpl.cpp
InterfaceImpl.h North.h Tools.h

c++
-c InterfaceImpl.cpp InterfaceImpl.h Tools.h

North.o : North.cpp North.h

c++
-c North.cpp North.h

.PHONY : clean

clean :

rm
-f $(fileO) NorthDemo.out CallApiDemo.o InterfaceImpl.o North.o Tools.o
IniFile.o transformEncode.o OutputStatus.so

output:

c++
-I. -I$ICE_HOME/include -shared -o OutputStatus.so North.o InterfaceImpl.o
Tools.o IniFile.o transformEncode.o

obj:

g++
-o NorthDemo.out -I. -I$ICE_HOME/include CallApiDemo.o -L. OutputStatus.so
-lIce –lIceUtil

启动demo 的shell脚本参考:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

./NorthDemo.out