1

我正在将 Eclipse CDT 中的一些 c++ 网络代码作为 makefile 项目工作,但 eclipse 抱怨FD_ZERO. 编译工作正常。

最小的例子:

#include <arpa/inet.h>

void test()
{
    fd_set fds;
    FD_ZERO(&fds);
}

这显示为“Eclipse is Function '__builtin_bzero' could not be resolved”错误。

FD_ZERO是在 `sys/select.h' 中定义的宏

sys/select.h:#define    FD_ZERO(p)  __DARWIN_FD_ZERO(p)

并且sys/_structs.h我们可以发现__DARWIN_FD_ZERO被定义为对 gcc 内置函数的调用。

#define __DARWIN_FD_ZERO(p)     __builtin_bzero(p, sizeof(*(p)))

我在 CDT 中选择了 mac os x 工具链,没有更改任何其他选项。有什么想法可以解决这个问题吗?

4

2 回答 2

0

我注意到这还没有得到回答,所以为了完整起见,这是我的解决方案:

改为使用memset(&fds, 0, sizeof fds);

于 2013-03-04T01:58:25.603 回答
0

问题只是 __builtin_bzero 就是这样,它是在编译器级别内置的。CDT 不知道这一点,因为它有自己的解析器。

于 2013-08-13T19:09:10.457 回答