我正在尝试在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”编译了它并给了我提到的错误。
答案 0 :(得分:3)
一个非常简单的错误。您已经定义了一个与您尝试调用的外部函数同名的局部变量(socket
)。尝试以下操作,您将收到相同的错误:
int f()
{
return 0;
}
void main()
{
int f = f();
}