ace能不能在linux下使用
ace能在linux下使用,其使用方法是:1、下载ACE源码并解压;2、将“ACE_wrappers”文件夹放到某个目录下;3、更改“~/.bash_profile”文件;4、在“$ACE_ROOT/ace”下创建一个“config.h”,并添加“#include "ace/config-linux.h"”代码;5、执行make命令即可。
在Linux上使用ACE
ACE自适配通信环境(ADAPTIVE Communication Environment)是可自由使用、开放源码的面向对象(OO)框架(framework),它实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可重用C++包装外观(wrapper facade)和框架组件,可跨多种平台,如Windows、Linux、WinCE、VxWorks等系统。它不仅实现了网络通信,还有线程、进程、内存操作等,所以现在ACE的应用还是比较广泛的。
它的源码可以在www.riverace.com下载
下载后解压出来一个ACE_wrappers文件夹,将其放到某个目录下面
然后更改~/.bash_profile文件,添加如下代码
1 | #这个目录在编译的时候会用到,因为所有的头文件都在/ACE_wrappers/ace/文件夹下面 #而且它的头文件包含形式都是<ace/Log_Msg.h>形式的 ACE_ROOT=$HOME/ace/ACE_wrappers#这个是为了在程序运行的时候用的,因为安装好之后,它的动态库,libACE.so等都放到这个目录里面了 #如果这个不设置,程序找libACE.so找不到的话,就没法正常运行 LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH#导出这两个环境变量 export ACE_ROOTexport LD_LIBRARY_PATH |
然后想办法让你的环境变量生效,因为我用的SecureCRT远程登录的linux,所以断开之后再连接,就生效了
然后再$ACE_ROOT/ace下面创建一个config.h
然后在里面添加上如下代码:
1 | # include "ace/config-linux.h" |
然后保存就行了
(ace的好多头文件都要使用config.h,而且它跨平台,就是要靠这个文件来区分的,在Windows下面,这个文件的内容好像就好像改为了: #include "ace/config-win32.h")
然后在如下目录:
1 | $ACE_ROOT / include /makeinclude/ |
创建:
1 | platform_macros.GNU |
内容:
1 | include $(ACE_ROOT)/ include /makeinclude/platform_linux.GNU |
然后直接执行make命令,如果能成功执行完,就说明已经安装好了
但我在make的时候就出现了两个问题,开始提示某个sh脚本的执行权限不够,我就手动加上执行权限:
1 | chmod +x file |
后来又提示在脚本中存在一些其它的错误,这时候用vi打开这些脚本,然后执行:
set ff? (这个命令查看当前文本的格式,ff,即file format)
如果出现:
1 | fileformat=dos |
则再执行如下的命令:
1 | set ff=unix |
然后保存
这样应该就能执行成功了
安装好之后就可以拿一个简单示例来进行测试了
下面是简单的hello world示例
1 | # include <stdio.h> # include "ace/Log_Msg.h" # include "ace/OS_main.h" int ACE_TMAIN(int argc, ACE_TCHAR *argv[]){ ACE_DEBUG((LM_DEBUG, "Hello World/n" )); return 0;} |
然后执行如下命令:
1 | g++ -Wall -I $ACE_ROOT -L $ACE_ROOT /lib -l ACE -o hello hello.cpp |
此时应该就生成了hello
1 2 | ./hello Hello World |
我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!