之前的文章说了如何在linux上编译,最近在Solaris上编译了一下,32位和64位都通过了。但64位的库还没试,不知道用起来会不会出现什么问题。下面先说下我的环境,和之前的方法一样,都是设置好环境变量
PATH=$PATH:$HOME/bin;export PATHACE_ROOT=/home/vimp/ACE_wrappers;export ACE_ROOTLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATHPATH=$PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/usr/vacpp/bin;export PATH我用的是g++,版本是3.3.1的,没用SUNC++,水平有限加上机器环境不太熟悉。下面为通用步骤:
1. 下载ACE包
下载下来tar.gz包,解开,
gunzip [.gz包]
tar -xvf [tar包名]
操作完后将会在当前目录下有ACE_wrappers目录。(注:我这里tar时,文件老是出点错误,是checksum的错误,后来我就在win下解压了,有压成.zip的包,传上去,用gunzip还是g解的我也忘了)
2. 设置环境变量
修改登陆脚本,如下所示:
$ vi /etc/profile
# User specific environment and startup programsPATH=$PATH:$HOME/bin;export PATHACE_ROOT=/home/vimp/ACE_wrappers;export ACE_ROOTLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATHPATH=$PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/usr/vacpp/bin;export PATHunset USERNAME具体是什么样子的忘了,主要就是设置好环境变量就是了。
修改后,重,环境变量设置好。
3. 修改文件
进入$ACE_ROOT/ace/下,修改config.h $vi config.h#include "ace/config_sunos5.9.h"保存退出进入$ACE_ROOT/include/makeinclude/下,建立platform_macros.GNU$vi platform_macros.GNUinclude $ACE_ROOT/include/makeinclude/platform_sunos5_g++.GNU保存退出4. 编译
进入$ACE_ROOT/ace下make。等待一会,编译完后,进入lib下,看是不是有.so文件了,成功!
这样是32位版本,ldd看下.so文件,依赖库也是32位的库,file看下也可以看的出来。
64位版本需要修改makefile文件了。在刚才的platform_macros.GNU中包含了platform_sunos5_g++.GNU这个文件,修改这个文件。修改CFLAGS和SOFLAGS,加上-m64编译选项。
我用的机器是2个CPU的,所以为了便宜环境时的速度,可以make的时候加选项,make -j n , n为CPU个数,-j的意思是同时并行处理的job数。
编译64位的ACE的时候,会有些类型转换的的警告,不用理会他,可以成功编译出来.so文件,但具体使用会不会有问题,还要进一步试
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/andy6355/archive/2006/11/01/1360491.aspx