peakzhang 发表于 2008-9-18 23:27:59

Fedora5(fc5)下利用eclipse工具进行ACE编程学习

作者:[滴水人生]
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;

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,看到如下信息:
$ ./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
$
4、总结
    上面是我在windows下学习ace编程之后在linux下编译成功的第一个例子,在这里和大家共同学习。希望你们能和我一起来探讨关于ACE方面的知识。还有CORBA方面的编程我也在继续进行。

peakzhang 发表于 2008-9-18 23:28:12

谢谢你的介绍,我刚刚用eclipse试了你的例子,连接时没有你的.so文件错误,不过我的设置与你不一样 我想你的问题可能是没有设置库的搜索路径,并且指定连接库名时不需要库文件的后缀,所以最后的console输出应该是这样的

g++ -LC:/ACE_wrappers/lib -o"ACEpath.exe" ./main.o -llibACE

-l 是 g++ 标准的输入参数,不应该有问题的
页: [1]
查看完整版本: Fedora5(fc5)下利用eclipse工具进行ACE编程学习