找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4144|回复: 1

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

[复制链接]
发表于 2008-9-18 23:27:59 | 显示全部楼层 |阅读模式
作者:[滴水人生]
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方面的编程我也在继续进行。
 楼主| 发表于 2008-9-18 23:28:12 | 显示全部楼层
谢谢你的介绍,我刚刚用eclipse试了你的例子,连接时没有你的.so文件错误,不过我的设置与你不一样 我想你的问题可能是没有设置库的搜索路径,并且指定连接库名时不需要库文件的后缀,所以最后的console输出应该是这样的

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

-l 是 g++ 标准的输入参数,不应该有问题的
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-4 15:50 , Processed in 0.025337 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表