|
作者:[滴水人生]
1、安装eclipse和ACE工具包
fedora5安装过程中可以选择安装eclipse,当然,你也可以自己安装。安装过程自己在网上找,也可以和我探讨。
我们先编译ACE工具包,方法可以见网上,也可以和我联系。
2、修改ACE_NTRACE值
修改ACE_NTRACE为0,可以在程序执行中看见程序执行过程中函数入口和出口的路径。这个在ACE Programmer's Guide, The Practical Design Patterns for Network and Systems中有介绍。如果谁需要这本书,我可以借给你看, 不过是english的哦。
3、编译运行一个例子
下面是一个在ACE Programmer's Guide, The Practical Design Patterns for Network and Systems中的例子。
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Connector.h"
#include "ace/Log_Msg.h"
int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_INET_Addr srvr (50000, ACE_LOCALHOST);
ACE_SOCK_Connector connector;
ACE_SOCK_Stream peer;
if (-1 == connector.connect (peer, srvr))
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("connect")), 1);
int bc;
char buf[64];
peer.send_n ("uptime\n", 7);
bc = peer.recv (buf, sizeof(buf));
write (1, buf, bc);
peer.close ();
return (0);
}
在eclipse中新建Managed Make C++ Project 工程,新建一个main.cpp文件,拷贝上述例子。
点击project->properties,打开,在左侧一览中选择C/C++ Build,在TAB列中选择tools settings,点中gcc c++ compiler中的directories,增加你的ACE根目录,例如/home/drops/programming/ACE。
点中gcc c++ linker,在command 中修改g++为g++ ~/programming/ACE/lib/libACE.so,即你编译ACE生成的.so文件,这里是我的创意,因为我测试在libraries中增加.so文件,在链接时候老是报错:/usr/bin/ld:打不开 -l。。。。。so。看见没有,他总是在你的so文件前面加上-l,气死人了,也不知道怎么去掉他,后来我在console下,直接去掉他来编译,没问题,所以想到上面的办法。哈哈,解决问题了。别忘了点击ok哦。
点击project中的build project。看到编译成功的信息没有。。。
在console中执行./TEST,看到如下信息:
[drops@localhost Debug]$ ./TEST
(3085945136) calling ACE_SOCK_Connector::ACE_SOCK_Connector in file `/home/drops/programming/ACE/ace/SOCK_Connector.inl' on line 21
(3085945136) leaving ACE_SOCK_Connector::ACE_SOCK_Connector
connect: Connection refused
(3085945136) calling ACE_SOCK_Connector::~ACE_SOCK_Connector in file `/home/drops/programming/ACE/ace/SOCK_Connector.inl' on line 13
(3085945136) leaving ACE_SOCK_Connector::~ACE_SOCK_Connector
[drops@localhost Debug]$
4、总结
上面是我在windows下学习ace编程之后在linux下编译成功的第一个例子,在这里和大家共同学习。希望你们能和我一起来探讨关于ACE方面的知识。还有CORBA方面的编程我也在继续进行。 |
|