在Solaris上编译32位和64位版本ACE

之前的文章说了如何在linux上编译,最近在Solaris上编译了一下,32位和64位都通过了。但64位的库还没试,不知道用起来会不会出现什么问题。下面先说下我的环境,和之前的方法一样,都是设置好环境变量

PATH=$PATH:$HOME/bin;export PATH
ACE_ROOT=/home/vimp/ACE_wrappers;export ACE_ROOT
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATH
PATH=$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 programs
PATH=$PATH:$HOME/bin;export PATH
ACE_ROOT=/home/vimp/ACE_wrappers;export ACE_ROOT
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATH
PATH=$PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/usr/vacpp/bin;export PATH
unset 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.GNU
include $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文件,但具体使用会不会有问题,还要进一步试

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值