牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

ACE编译过程(转载)

吴尔平

    ACE (ADAPTIVE Communication Environment)
 是个好东西,好东西要使用才能体现价值,要使用就得拥有。那么,ACE入门的第一课自然就是在自已的系统上构建 ACE ! 

    ACE 是跨平台的,这是它一个很重要的特性,我也就是冲着这个特性而来。ACE支持很多的操作系统,我的目标是两个,一个是 Windows, 一个是 Linux。 

    ACE 的作者 Douglas C. Schmidt 传言中每天只睡三个小时,三个小时里还在收发 EMail。我当然不是,但几个系统折腾下来,当晚我也只睡了 3.5 小时 。 闲话少说,下面列出步骤,希望能给后来者一点帮助:

1. 下载Latest Release 

    下载地址在 http://deuce.doc.wustl.edu/Download.html。写这篇 blog 时是 5.4。  我现在仅仅需要 ACE,所以我选择下了这个包     ACE-5.4.tar.gz 共 7.56M,很快可以下完。

2.  然后打开官方的安装说明做准备 

    地址  http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html#installpre

3. 在 Windows2003 中用 vc7.1 构建  

     windows 的使用以易用而著称,这次也不例外。  安装说明的 Building and Installing ACE on Windows with Microsoft Visual C++ 节详细说明了如何安装。 

    我想用 ACE 构建跨平台应用,所以我只选择我要的东西: 
  
      3.1 将 ACE-5.4.tar.gz 解压,有一个 ACE_wrappers 目录。这个将做为 ACE_ROOT。 
  
      3.2 在 ACE_ROOT\ace 目录创建一个名为 config.h的文件。编辑文件并加入以下内容 

           #define ACE_HAS_STANDARD_CPP_LIBRARY 1 

           #include "ace/config-win32.h" 

           其中第一行是因为我想用标准C++跨平台,第二行则是必须要的。  

      3.3 在 ACE_ROOT\ace 中找到 ace.dsw,用 vc7.1 打开。因为当前编译器版本高,会提示你转换。  转换后,在 Debug 和 Release 状态,在 Solution Explorer/ACE 上点 Rebuild,然后伏案小憩。   在ACE_ROOT\lib 目录会生成我们所要的 dll 和 lib 文件。  
  
      3.4 就这样搞定,够简单吧

4. 在 RedHat9 中用 G++3.2.2 构建  

      Linux 则要麻烦不少,网上有不少贴子,说安装多难,说 ACE-INSTALL.html 不对。呵, 这个观点倒是误导了我,我只睡了  3.5 小时与此 有极大的关系。其实,ACE-5.4 的安装,只要按说明步步行来,自然水到渠成。关键是要找对指引。详细步骤看安装说明的 Building ACE with GNU Autoconf 节  

        4.0 做一些准备动作 (这几步有的可后做,但到了编译自已的项目时还是要用到) 

           在 $HOME目录的.bash_profile 文件中加入 

               ACE_ROOT=$HOME/ThirdParty/ACE_wrappers 

               export ACE_ROOT
   
           在 $ACE_ROOT/ace 目录新建 config.h 并加入 

                #define ACE_HAS_STANDARD_CPP_LIBRARY 1 

                #include "ace/config-linux.h"
   
           在 $ACE_ROOT/include/makeinclude 目录新建 platform_macros.GNU 并加入 

                include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU 

      4.1 cd 命令进入 ACE_wrappers 目录.  

      4.2 然后敲下面两个命令 

                mkdir build
                cd build  

      4.3 运行 ../configure [options] 为你的平台配置 ACE 。我没有使用任何选项  

      4.4 键入命令 make ,会发现 RedHat9 默认 autoconf 版本不够,去   http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=52357 下载一个新的版本 autoconf-2.59.tar.gz 并解压安装 (使用./configure 和 make install)。 再次键入 make 构建 ACE。构建时间可以冲一杯coffee 。  成功后在 $ACE_ROOT/build/ace/.libs 生成许多文件,键入
   $ ls -a lib*so*  

    看到文件已生成 

   $ libACE.so  libACE.so.5  libACE.so.5.4.0   

结尾...
时间又到了晚上一点, 是跟周公一起吹水的时间了,键盘和鼠标,就停在这里

posted on 2007-10-11 14:24 杨粼波 阅读(1818) 评论(2)  编辑 收藏 引用

评论

# re: ACE编译过程(转载) 2008-05-13 14:03 ediv

你好~
我在编译ACE时出现了一点问题。。。希望你能帮我指点迷津。。
我是用VS2005编译器,ACE版本是5.5,步骤如下:
1.在操作系统添加一个名为ACE_ROOT的用户环境变量,值为刚才ace的解压路径D:\Develop\ACE_wrappers。
2.添加用户的Path环境变量,值为%ACE_ROOT%\lib,这样才能保证系统能找到ace生成的动态连接库。
3.设置VS2005的C++开发项目信息,依次打开菜单 工具-选项-项目和解决方案-VC++目录 ,在右侧目录列表中选择"包含目录",添加$(ACE_ROOT),在右侧目录列表中选择"库文件",添加$(ACE_ROOT)\lib。
4.在ACE_ROOT\ace目录创建一个名为 config.h的文件。编辑文件并加入以下内容
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"

5.进入ACE_ROOT\ace目录中,能发现ACE现在已经带VS2005的编译项目了,直接打开ace_vc8.sln,直接生成ACE项目的Debug版。

但编译期间出现少许错误,具体如下:
错误 13 error LNK2019: 无法解析的外部符号 "char const * __cdecl in_word_set(char const *,unsigned int)" (?in_word_set@@YAPBDPBDI@Z),该符号在函数 "int __cdecl ace_main_i(int,char * * const)" (?ace_main_i@@YAHHQAPAD@Z) 中被引用 test.obj
错误 14 fatal error LNK1120: 1 个无法解析的外部命令 .\iout.exe


劳烦你看下,给我一点解决的信息。谢谢  回复  更多评论   

# re: ACE编译过程(转载) 2008-05-13 14:05 ediv

我的邮件是:lmzedison@hotmail.com  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理