ICE专题:编译环境构建

简介:

ICE作为一种无平台的中间件,提供了最灵活的编译方式,即自定义的平台无关语言slice,这种以语言方式来配置的做法,极大的统一了网络服务的标准,有点类似于java语言的实现与编译,正是因为java语言的定义与实现都是由SUN公司提供的,才极大的推动了java语言的发发展。

在linux平台下编译比windows平台简单的多,必须要用g++ 3.x来编译ICE的开发包,否则会报错。 下载Ice-3.0.1.tar.gzThirdParty-Sources-3.0.1.tar.gz,先编译ThirdParty-Sources-3.0.1.tar.gz:

1、mkdir ThirdParty

2、cp ThirdParty-Sources-3.0.1.tar.gz ThirdParty

3、tar –xzvf ThirdParty-Sources-3.0.1.tar.gz

4、tar –xzvf openssl-0.9.8a.tar.gz

5、cd openssl-0.9.8a

6、./ Configure;make;make install

7、cd ..

8、tar –xzvf expat-1.95.8.tar.gz

9、cd expat-1.95.8

10、./ configure;make;make install

11、cd ..

12、tar –xzvf db-4.3.29.NC.tar.gz

13、cd db-4.3.29.NC

14、cd build_unix

15、../dist/configure;make;make install

16、cd ../..

17、tar –xzvf Ice-3.0.1.tar.gz

18、cd Ice-3.0.1

19、将config文件夹下的Make.rules.Linux,将c++改为g++

20、将config文件夹下的Make.rules里面的变量修改为第三方库的路径,找?号的是系统已经安装的,在linux下STL就是STLport不用另行安装。

#STLPORT_HOME ?= /opt/STLport

#

# If libbzip2 is not installed in a standard location where the compiler

# can find it, set BZIP2_HOME to the bzip2 installation directory.

#

#BZIP2_HOME ?= /opt/bzip2

#

# If Berkeley DB is not installed in a standard location where the

# compiler can find it, set DB_HOME to the Berkeley DB installation

# directory.

#

#DB_HOME = /root2/opt/db

#

# If OpenSSL is not installed in a standard location where the

# compiler can find it, set OPENSSL_HOME to the OpenSSL installation

# directory.

#

OPENSSL_HOME = /root2/opt/openssl

#

# Define if your OpenSSL requires Kerberos, and if Kerberos is not

# installed in a standard location.

#

KERBEROS_HOME ?= /usr/kerberos

#

# If expat is not installed in a standard location where the

# compiler can find it, set EXPAT_HOME to the expat

# installation directory.

#

EXPAT_HOME = /root2/opt/expat

#

# If readline is not installed in a standard location where the

# compiler can find it, AND you want to use readline,

# set READLINE_HOME to the readline installation directory.

#

#

#READLINE_HOME ?= /opt/readline

21、make;make install

这样ICE就可以编译过去了,可以用make test来测试编译得是否正确。

在windows平台上安装ICE比较简单,就是VC设置麻烦些。因为我用的是VC6.0,但用VC7.0和8.0都有相对应的包,安装步骤是一样的。

首先从下载ThirdParty-3.0.1-VC60.msiIce-3.0.1-VC60.msi,直接安装。

打开VC6.0,在include和lib设置时,在include中加入Ice-3.0.1-ThirdParty-VC60\include\stl_port和Ice-3.0.1-VC60\include。同理在lib中加入Ice-3.0.1-ThirdParty-VC60\lib和Ice-3.0.1-VC60\lib

将Ice-3.0.1-ThirdParty-VC60\include和Ice-3.0.1-ThirdParty-VC60\lib放在第一行,否则编译STL的时候还是没有用STL_port,就会编译失败。

在编译console类型的程序时,要将Porject->setting->c/c++->code gereration中的Use run-time library中的Debug Multithreaded DLL选上,实现多线程,因为ICE本身天生就是多线程的。

在任何情况下编译ICE程序,都要将Porject->setting->C++ Language中的Enable Run-Time Type Information (RTTI)选中,否则STL_port会报Access violation - no RTTI data In Visual Studio (Visual C++)错误。

这样,两种平台上的ICE都安装完毕,可以用Demo来测试环境。

http://blog.chinaunix.net/u/20057/showart_122073.h...




本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/sgsoft/archive/2007/05/03/735220.html,如需转载请自行联系原作者

相关文章
|
Ubuntu
百度搜索:蓝易云【Ubuntu系统apt添加第三方PPA源教程】
现在,你已经成功在Ubuntu系统中添加了第三方PPA源。系统将会从该源获取更新和软件包。请注意,添加第三方PPA源时要确保其来源可信,以免引入不安全的软件包。
649 5
|
存储
将PC端的apk文件通过微信文件分享到手机,后缀名有.1
将PC端的apk文件通过微信文件分享到手机,后缀名有.1
912 0
|
监控 NoSQL 算法
Redis主从切换,锁失效怎么办?
在分布式系统中,Redis因其高性能和易用性而被广泛应用于缓存、分布式锁等场景。然而,当Redis采用主从架构以实现高可用性和数据冗余时,主从切换可能带来的锁失效问题成为了一个不容忽视的挑战。本文将深入探讨Redis主从切换导致锁失效的原因、影响及解决方案,旨在为大家提供实用的技术干货。
891 5
|
SQL 关系型数据库 MySQL
大厂面试官:聊下 MySQL 慢查询优化、索引优化?
MySQL慢查询优化、索引优化,是必知必备,大厂面试高频,本文深入详解,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试官:聊下 MySQL 慢查询优化、索引优化?
|
机器学习/深度学习 资源调度 算法
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
5031 6
|
机器学习/深度学习 自然语言处理 计算机视觉
【YOLOv11改进 - 注意力机制】 MHSA:多头自注意力(Multi-Head Self-Attention)
【YOLOv11改进 - 注意力机制】 MHSA:多头自注意力(Multi-Head Self-Attention)BoTNet是一种将自注意力机制引入ResNet的创新架构,通过在最后三个瓶颈块中用全局自注意力替换空间卷积,显著提升了图像分类、物体检测和实例分割的性能,同时减少了参数量和计算开销。在COCO实例分割和ImageNet分类任务中,BoTNet分别达到了44.4%的Mask AP和84.7%的Top-1准确率,超越了现有模型。
【YOLOv11改进 - 注意力机制】 MHSA:多头自注意力(Multi-Head Self-Attention)
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
514 1
持久层框架MyBatisPlus
|
XML Java 数据格式
xml与java对象的快速互转
做流程图的项目时,新的流程定义为xml的,需要对xml与java对象进行互转 查了一下activiti的转换xml方式,发现转换太麻烦了,需要一步步的解析xml 后面发现直接用jaxb就可以很快实现互转,而且现在这个jaxb在jdk内,不需要引入外部的解析xml的包 具体如下: 一.
2633 0
|
机器学习/深度学习 算法 计算机视觉
基于YOLOv8深度学习的102种花卉智能识别系统【python源码+Pyqt5界面+数据集+训练代码】目标识别、深度学习实战
基于YOLOv8深度学习的102种花卉智能识别系统【python源码+Pyqt5界面+数据集+训练代码】目标识别、深度学习实战
|
Web App开发 测试技术 iOS开发
Mac OS 安装Wget
有些时候,我们希望直接通过 wget 来下载文件。 Mac OS 可以通过以下几种方式安装 Wget: 1、使用 port 命令 sudo port install wget2、使用 brew 命令 sudo brew install wget3、使用浏览器下载一个Wget的源码包,http://www.
33855 0