免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2396 | 回复: 0
打印 上一主题 下一主题

build ACE under freebsd 7.0 之问题解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-19 22:14 |只看该作者 |倒序浏览
不少人都尝试ACE在bsd下的build和开发,为了便于大家快速解决build时碰到的问题,
这里给出ACE 在 freebsd 7.0下build的 问题解决办法, 供大家参考。


1)../../ace/OS_NS_signal.inl: In function ‘int ACE_OS::pthread_sigmask(int, const sigset_t*, sigset_t*)’:
../../ace/OS_NS_signal.inl:31: error: ‘::pthread_sigmask’ has not been declared
解决办法:
打开ace/OS_NS_signal.inl,在头部添加
     #include <pthread.h>
     #include <signal.h>

2)/../ace/OS_NS_netdb.inl:189: error: cannot convert ‘int*’ to ‘hostent**’ for argument ‘7′ to ‘int gethostbyaddr_r(const void*, socklen_t, int, hostent*, char*, size_t, hostent**, int*)’

解决办法:
打开ace/config.h,在其中添加
#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS

3)/../ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp:87  has incomplete type
struct ifdatareq ifdr; memset (&ifdr, 0, sizeof (ifdr));

解决办法:freebsd的<net/if.h>并没有定义ifdatareq struct,在:87前面手工增加 struct:

struct ifdatareq {
                char ifdr_name[IFNAMSIZ];
                struct if_data ifdr_data;
        };

          struct ifdatareq ifdr;
          memset (&ifdr, 0, sizeof (ifdr));

前面2个问题的解决办法参考 http://www.sunchangming.com/blog/?p=234,
第3个问题本人通过找到if.h的源文件解决,发现struct ifdatareq的定义遗漏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP