2012-12-17 37 views
0

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

例如,我使用标准的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

你是什么意思“我的程序无法链接到库(libc)”?这是限制你的代码的设计/构造还是你的意思是链接器无法找到libc OR?消息中包含的错误消息(格式正确)会让人们更容易帮助您。你知道'make'和'makefile'吗?只有最简单的项目可以通过没有makefile来获得。祝你好运。 – shellter

+0

你是怎么调用socket的?它具有签名''int套接字(int域,int类型,int协议)''。也许你可以提供你的代码的摘录。 –

+0

请把你的代码放在你的问题中。祝你好运。 – shellter

回答

3

一个非常简单的错误。您已经定义了一个局部变量,其名称与您尝试呼叫的外部功能相同(socket)。尝试以下,你会得到相同的错误:

int f() 
{ 
    return 0; 
} 

void main() 
{ 
    int f = f(); 
} 
+0

拍摄!非常愚蠢的问题。应该仔细看过。 –