2012-12-17 6 views
0

freebsd 8에서 간단한 네트워킹 프로그램을 컴파일하고 컴파일 문제로 실행하려고합니다. 간단한 클라이언트 - 서버 프로그램을 만들고 있지만 네트워킹에서 기능이나 구조가 컴파일되지 않습니다.freebsd 네트워크 프로그램 컴파일

예 : 표준 소켓() 호출을 사용하여 소켓을 만들지 만 "호출 된 객체 소켓은 함수가 아닙니다."라는 오류가 발생합니다.

네트워크 코드를 제거하면 장난감 프로그램이 컴파일됩니다. 간단히하기 위해 나는 컴파일하지 않는 간단한 예제를 넣었다. :

#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

어떻게 소켓을 호출합니까? 그것은 "int socket (int domain, int type, int protocol)"이라는 서명을 가지고있다. 아마도 코드 추출물을 제공 할 수 있습니다. –

+0

질문에 코드를 입력하십시오. 행운을 빕니다. – shellter

답변

3

아주 간단한 오류입니다. 호출하려는 외부 함수와 동일한 이름의 로컬 변수를 정의했습니다 (socket). 다음을 시도하면 동일한 오류가 발생합니다.

int f() 
{ 
    return 0; 
} 

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

촬영하십시오! 아주 바보 같은 질문. 신중하게 봐야했다. –