- 浏览: 55769 次
- 性别:
- 来自: 北京
文章分类
最新评论
ICE在Linux下的完整编译安装
安装平台要求:最好用gcc 4.x版编译ICE,在Slackware下发现gcc3.3.6和gcc3.4.6都无法编译通过
为了方便管理,将ICE相关的软件都安装到/usr/local/ICE-3.3.0/目录下
安装python
./configure --enable-shared
make
make install
首先 安装第三方包:ThirdParty-Sources-3.3.0.tar.gz
解压 ThirdParty-Sources-3.3.0.tar.gz
# cd ThirdParty-Sources-3.3.0
1)mcpp is a C/C++ preprocessor
------
解压 mcpp-2.7.2.tar.gz
# cd mcpp-2.7.2
# ./configure --prefix=/usr/local/ICE-3.3.0/mcpp-2.7.2/ CFLAGS=-fPIC -enable-mcpplib -disable-shared
# make
# make install
2)Berkeley DB 是一个高性能的,嵌入数据库编程库,和C语言, C++, Java, Perl, Python, Tcl以及其他很多语言都有绑定。
--------
解压 db-4.6.21.NC.tar.gz
# cd db-4.6.21.NC
# cd build_unix
# ../dist/configure --prefix=/usr/local/ICE-3.3.0/BerkeleyDB.4.6/ -enable-cxx
# make
# make install
3)bzip2 是 Julian Seward 开发并按照自由软件/开源软件协议发布的数据压缩算法及程序
--------
解压 bzip2-1.0.5.tar.gz
# cd bzip2-1.0.5
修改Makefile,将PREFIX指向/usr/local/ICE-3.3.0/bzip2-1.0.5
# make
# make install
4) expat 是一个 XML parsing C library
--------
解压 expat-2.0.1.tar.gz
# cd expat-2.0.1
# ./configure --prefix=/usr/local/ICE-3.3.0/expat-2.0.1/
# make
# make install
5) openssl 是 Secure Socket Layer (SSL) binary and related cryptographic tools
--------
解压 openssl-0.9.8g.tar.gz
# cd openssl-0.9.8g
# ./config --prefix=/usr/local/ICE-3.3.0/openssl
# make
# make install
现在正式安装 Ice-3.3.0.tar.gz
--------
解压 Ice-3.3.0.tar.gz
1) 编译 cpp版本:
# cd Ice-3.3.0/cpp
# vi config/Make.rules
...
#
# Select an installation base directory. The directory will be created
# if it does not exist.
#
# prefix ?= /opt/Ice-$(VERSION)
prefix ?= /usr/local/ICE-3.3.0/Ice-$(VERSION)
#
# The "root directory" for runpath embedded in executables. Can be unset
# to avoid adding a runpath to Ice executables.
#
# embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
embedded_runpath_prefix ?= /usr/local/ICE-3.3.0/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
...
#
#
# 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 ?= /bzip2-1.0.5
# 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 ?= /opt/db
DB_HOME ?= /usr/local/ICE-3.3.0/BerkeleyDB.4.6
#
# 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 ?= /opt/expat
EXPAT_HOME ?= /usr/local/ICE-3.3.0/expat-2.0.1
#
# 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 ?= /opt/openssl
OPENSSL_HOME ?= /usr/local/ICE-3.3.0/openssl
#
# If Mcpp is not installed in a standard location where the compiler
# can find it, set MCPP_HOME to the Mcpp installation directory.
#
#MCPP_HOME ?= /opt/mcpp
MCPP_HOME ?= /usr/local/ICE-3.3.0/mcpp-2.7.2
...
特别注意: cpp/config/Make.rules的相关第三方库的路径
# make
# make install
2)编译python 版本
# cd Ice-3.3.0/py
# vi config/Make.rules
修改方法参考cpp部分描述
# make
# make install
设置ICE环境变量
#vi /etc/profile
export PYTHONPATH=/usr/local/ICE-3.3.0/Ice-3.3/python/:
export ICE_HOME=/usr/local/ICE-3.3.0/Ice-3.3
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
安装过程出现的问题:
第一
/usr/bin/ld: /usr/local/python27/lib/python2.7/config/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/python27/lib/python2.7/config/libpython2.7.a: could not read symbols: Bad value
解决:重新安装python 加入--enable-shared
第二
error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file
解决:
Whereis libpython2.7.so.1.0
LB_DEBUG=libs python –V 查看缺少的库
做个软连接即可
第三
ICE的编译报错 libIce.so: undefined reference to `libiconv',解决:
这个问题很恶心,是ICE自己makefile的问题,找到cpp/config/Makefile.rules中,找到193行 :
ICONV_LIBS = $(if $(ICONV_HOME),-L$(ICONV_HOME)/$(libsubdir)) $(ICONV_LIB)
把这一行修改成下面的就好了, ICONV_LIB根本没有定义
ICONV_LIBS = $(if $(ICONV_HOME),-L$(ICONV_HOME)/$(libsubdir)) -liconv
安装过程可能还会有其他的问题,比如64位的机器lib包名为lib64 ,可以根据错误信息提示响应的做修改,把lib包做个软连接到lib64等。
安装平台要求:最好用gcc 4.x版编译ICE,在Slackware下发现gcc3.3.6和gcc3.4.6都无法编译通过
为了方便管理,将ICE相关的软件都安装到/usr/local/ICE-3.3.0/目录下
安装python
./configure --enable-shared
make
make install
首先 安装第三方包:ThirdParty-Sources-3.3.0.tar.gz
解压 ThirdParty-Sources-3.3.0.tar.gz
# cd ThirdParty-Sources-3.3.0
1)mcpp is a C/C++ preprocessor
------
解压 mcpp-2.7.2.tar.gz
# cd mcpp-2.7.2
# ./configure --prefix=/usr/local/ICE-3.3.0/mcpp-2.7.2/ CFLAGS=-fPIC -enable-mcpplib -disable-shared
# make
# make install
2)Berkeley DB 是一个高性能的,嵌入数据库编程库,和C语言, C++, Java, Perl, Python, Tcl以及其他很多语言都有绑定。
--------
解压 db-4.6.21.NC.tar.gz
# cd db-4.6.21.NC
# cd build_unix
# ../dist/configure --prefix=/usr/local/ICE-3.3.0/BerkeleyDB.4.6/ -enable-cxx
# make
# make install
3)bzip2 是 Julian Seward 开发并按照自由软件/开源软件协议发布的数据压缩算法及程序
--------
解压 bzip2-1.0.5.tar.gz
# cd bzip2-1.0.5
修改Makefile,将PREFIX指向/usr/local/ICE-3.3.0/bzip2-1.0.5
# make
# make install
4) expat 是一个 XML parsing C library
--------
解压 expat-2.0.1.tar.gz
# cd expat-2.0.1
# ./configure --prefix=/usr/local/ICE-3.3.0/expat-2.0.1/
# make
# make install
5) openssl 是 Secure Socket Layer (SSL) binary and related cryptographic tools
--------
解压 openssl-0.9.8g.tar.gz
# cd openssl-0.9.8g
# ./config --prefix=/usr/local/ICE-3.3.0/openssl
# make
# make install
现在正式安装 Ice-3.3.0.tar.gz
--------
解压 Ice-3.3.0.tar.gz
1) 编译 cpp版本:
# cd Ice-3.3.0/cpp
# vi config/Make.rules
...
#
# Select an installation base directory. The directory will be created
# if it does not exist.
#
# prefix ?= /opt/Ice-$(VERSION)
prefix ?= /usr/local/ICE-3.3.0/Ice-$(VERSION)
#
# The "root directory" for runpath embedded in executables. Can be unset
# to avoid adding a runpath to Ice executables.
#
# embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
embedded_runpath_prefix ?= /usr/local/ICE-3.3.0/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
...
#
#
# 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 ?= /bzip2-1.0.5
# 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 ?= /opt/db
DB_HOME ?= /usr/local/ICE-3.3.0/BerkeleyDB.4.6
#
# 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 ?= /opt/expat
EXPAT_HOME ?= /usr/local/ICE-3.3.0/expat-2.0.1
#
# 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 ?= /opt/openssl
OPENSSL_HOME ?= /usr/local/ICE-3.3.0/openssl
#
# If Mcpp is not installed in a standard location where the compiler
# can find it, set MCPP_HOME to the Mcpp installation directory.
#
#MCPP_HOME ?= /opt/mcpp
MCPP_HOME ?= /usr/local/ICE-3.3.0/mcpp-2.7.2
...
特别注意: cpp/config/Make.rules的相关第三方库的路径
# make
# make install
2)编译python 版本
# cd Ice-3.3.0/py
# vi config/Make.rules
修改方法参考cpp部分描述
# make
# make install
设置ICE环境变量
#vi /etc/profile
export PYTHONPATH=/usr/local/ICE-3.3.0/Ice-3.3/python/:
export ICE_HOME=/usr/local/ICE-3.3.0/Ice-3.3
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
安装过程出现的问题:
第一
/usr/bin/ld: /usr/local/python27/lib/python2.7/config/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/python27/lib/python2.7/config/libpython2.7.a: could not read symbols: Bad value
解决:重新安装python 加入--enable-shared
第二
error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file
解决:
Whereis libpython2.7.so.1.0
LB_DEBUG=libs python –V 查看缺少的库
做个软连接即可
第三
ICE的编译报错 libIce.so: undefined reference to `libiconv',解决:
这个问题很恶心,是ICE自己makefile的问题,找到cpp/config/Makefile.rules中,找到193行 :
ICONV_LIBS = $(if $(ICONV_HOME),-L$(ICONV_HOME)/$(libsubdir)) $(ICONV_LIB)
把这一行修改成下面的就好了, ICONV_LIB根本没有定义
ICONV_LIBS = $(if $(ICONV_HOME),-L$(ICONV_HOME)/$(libsubdir)) -liconv
安装过程可能还会有其他的问题,比如64位的机器lib包名为lib64 ,可以根据错误信息提示响应的做修改,把lib包做个软连接到lib64等。
发表评论
-
C++ 返回值 协变问题
2012-05-20 12:38 1598今天代码遇到了返回值协变问题,不知如何解决,发出来与大家讨论一 ... -
linux cpu info
2012-03-31 10:29 1454在Linux体系中,供给了proc文件体系显示体系的软硬件信息 ... -
linux命令的正则表达式
2012-03-28 09:56 1106linux的命令行可以胜任 ... -
ICE异步调用方法
2012-03-20 14:11 2925ICE的AMI和AMD: AMI:指的是客户端 ... -
linux top命令用法
2012-02-21 17:47 1171linux top top命令是Linux下常用的性能分析工具 ... -
curl的timeout 崩溃问题
2012-01-19 11:38 2878最近供一个服务用到了curl,发现一件奇怪的事。 curl的超 ... -
gdb+core 定位so崩溃
2012-01-18 14:31 6776最近专门搞了一下so的调试。总结一下 关于core dump ... -
ubuntu ICE install
2011-12-12 22:40 1067转自; http://www.linuxidc.com/Li ... -
ICE开发环境搭建 全
2011-12-07 15:34 1376ICE作为一种无平台的中间件,提供了最灵活的编译方式, ... -
shell操作mysql
2011-12-04 13:28 1052在shell开发中,很多时候我们需要操作mysq ... -
ICE 属性配置相关
2011-11-24 10:51 922在前一篇文章中,大家 ... -
nginx源代码分析
2011-11-21 14:12 641http://hi.baidu.com/langwan/blo ... -
ICE开发环境搭建
2011-11-16 11:12 1717mark一下 转载自 http://bbs.chinaunix ... -
ice 的 Nonmutating 和 Idempotent
2011-11-15 10:37 1009转载地址:http://duckweeds.b ... -
SecureCRT中文乱码全解决方案
2011-11-10 10:49 1354在网上搜索SecureCRT的中文显示乱码问题,答案无非是修改 ...
相关推荐
总之,Linux下安装ICE包涉及下载、解压、编译、安装和配置等多个环节,每个环节都需要仔细操作,确保所有依赖都已满足,才能成功安装并正常使用ICE。同时,熟悉ICE的使用方法和编程模型,将有助于你更好地利用这个...
Ice Ice-3.7.0 linux windows mac os docker java js python ruby source Download Ice 3.7 Version: 3.7.0 - July 21, 2017 You are licensing Ice under GPLv2 unless you purchase a commercial license.
在 WINDOWS 下,使用 VC++ 可以方便地生成 DLL 文件,而在 LINUX 下,则需要通过各种编译命令来实现。例如,使用 `c++` 编译器和 `gcc` 编译器来编译和链接生成动态链接库。 下面是一个简单的例子,用于生成一个 ....
描述中提到"ice方面的例子,包括服务端和客户端,在linux下编译成功",这表明这个压缩包包含了ICE框架下的一个完整示例,涵盖了服务器端和客户端的代码。这意味着用户可以在Linux环境下编译并运行这些代码,体验ICE...
在Linux环境下安装ICE之前,需要确保系统已经安装了必要的依赖库。这些可能包括C++编译器、库文件和开发工具,例如GCC、Make、Git等。使用以下命令安装: ```bash sudo apt-get update sudo apt-get install build-...
在RHEL5(Red Hat Enterprise Linux 5)环境下,ICE提供了丰富的功能和组件,以满足跨平台通信的需求。 在提供的压缩包文件中,我们可以看到以下组件: 1. `ice-utils-3.3.0-1.rhel5.i386.rpm`:这是ICE工具集,...
ICE.rar_ICE_ice lin_linux i 这个压缩包文件主要关注的是ICE内核在Linux环境下的配置和编译过程,适用于对ICE环境进行搭配和内核修改的场景。ICE,通常代表某个特定的软件或技术,可能是操作系统的一个组件或者一个...
ICE 3.4.1 在移植到ARM Linux中时,double型的数据会有错误。见我在ZeroC发的帖子: http://www.zeroc.com/forums/bug-reports/5308-double-data-format-arm-linux-not-correct.html 在移植前,需要对源代码进行一些...
6. **Ice-3.5.1-demos目录**:这个目录下的文件可能包括了各种语言的源码示例、编译脚本、配置文件和文档。通过这些示例,开发者可以了解如何安装、配置和运行ICE3.5,以及如何组织和管理自己的ICE项目。 7. **关键...
这个插件为开发者提供了集成的IDE支持,使他们能在Visual Studio 2015环境中编写、编译和调试使用ICE的代码。iceBuilder提供了诸如代码自动完成、错误检查和调试工具等功能,极大地提高了开发效率和代码质量。 ICE...
通过这些RPM包,用户可以在EL6环境中安装并使用完整的Ice框架,包括不同语言的客户端和服务器端支持,以及必要的开发工具和库。这些组件的分离使得用户可以根据需要选择安装,比如仅在开发环境中安装开发包,在生产...
在安装ICE 3.3时,首先需要从官方网站或者指定的链接下载对应平台的安装包。安装过程中,需要注意选择正确的操作系统版本,并根据系统环境配置相应的路径。对于Windows系统,通常会有一个可执行的安装程序,只需按照...
标题"ice异步模式源码实例"指的是通过C++在Linux环境下使用ICE框架实现AMD和AMI模式的服务端和客户端,以便进行双向通信。这种通信方式允许服务端和客户端同时处理多个请求,提高系统的响应速度和效率。 描述中的...
《ZeroC ICE在Linux ARM64环境下的安装与配置指南》 ZeroC ICE(Internet Communications Engine)是一款跨平台、高性能的中间件,用于构建分布式系统。它提供了多种编程语言的接口,包括C++、Java、Python等,使得...
3. **跨平台**:ICE可在Windows、Linux、macOS等各种操作系统上运行,实现跨平台通信。 4. **自动序列化和反序列化**:ICE处理数据的序列化和反序列化,使得不同系统间的数据交换变得简单。 5. **负载均衡和故障恢复...
描述中提到的"Ubuntu下用NDK交叉编译",意味着开发环境是在Ubuntu操作系统上,使用了Android Native Development Kit (NDK) 来进行编译。NDK是Google提供的一套工具,允许开发者用C/C++编写原生代码,然后将其集成到...
3. 若是源代码,用户可能需要先安装必要的编译工具(如make, gcc等),然后在源代码目录下执行配置、编译和安装命令,例如:`./configure`, `make`, `sudo make install`。 4. 安装完成后,重启系统,然后在终端中...
2. 预编译检查:在安装驱动前,需要确保系统满足必要的依赖条件,例如GCC编译器、kernel-devel包等。可以使用`yum install kernel-devel gcc`命令来安装这些依赖。 3. 编译驱动:进入解压后的驱动源码目录,执行`...