1

makefile プロジェクトとして Eclipse CDT でいくつかの 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)

そして、gcc 組み込み関数の呼び出しとして定義されているsys/_structs.hことがわかります。__DARWIN_FD_ZERO

#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 に答える