0

私はfreebsd8でいくつかの単純なネットワークプログラムをコンパイルしようとしていますが、コンパイルの問題が発生しています。単純なクライアントサーバープログラムを作成していますが、ネットワークの機能や構造がコンパイルされていません。

たとえば。標準のsocket()呼び出しを使用してソケットを作成しましたが、「呼び出されたオブジェクトソケットは関数ではありません」というエラーが発生します。

ネットワークコードを削除すると、おもちゃのプログラムがコンパイルされます。簡単にするために、コンパイルしない簡単な例を示しました。:

#include <stdio.h>                        
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
void main(){
 int socket = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
 printf("Could create sockets without any issues.\n");
}

「cctoy_prog.c-lc」でコンパイルしたところ、上記のエラーが発生しました。

4

1 に答える 1

3

非常に単純なエラーです。呼び出そうとしている外部関数と同じ名前のローカル変数が定義されています ( socket)。次のことを試してみてください。同じエラーが発生します。

int f()
{
    return 0;
}

void main()
{
    int f = f();
}
于 2012-12-17T18:37:33.737 に答える