之前的文章說了如何在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