0

我正在尝试在 freebsd 8 上编译一些简单的网络程序并遇到编译问题。我正在创建一个简单的客户端-服务器程序,但没有编译来自网络的功能或结构。

例如。我使用标准 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");
}

我用“cc toy_prog.c -lc”编译它并给了我提到的错误。

4

1 回答 1

3

一个非常简单的错误。您已经定义了一个与您尝试调用的外部函数同名的局部变量 ( socket)。试试下面的,你会得到同样的错误:

int f()
{
    return 0;
}

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