我正在Eclipse CDT中作为makefile项目编写一些c++网络代码,但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)
在CCD_ 4中,我们可以发现CCD_ 5被定义为对gcc内置函数的调用。
#define __DARWIN_FD_ZERO(p) __builtin_bzero(p, sizeof(*(p)))
我在CDT中选择了macosx工具链,没有更改任何其他选项。有什么解决这个问题的想法吗?
我注意到这个问题还没有得到回答,所以为了完整性,这是我的解决方案:
请改用memset(&fds, 0, sizeof fds);
。
问题很简单,__builtin_bzero就是这样,它是在编译器级别内置的。CDT不知道这一点,因为它有自己的解析器。