2013-05-22 5 views
1

문제없이 실행하는 데 사용한 코드 조각이 있습니다. 하지만 이제 나는 그걸로 돌아갈거야. 그리고 나는 그것을 컴파일 할 수 없다.컴파일 오류 알 수 없음

컴파일되지 않은 부분은 .c 파일이고 라이브러리에 대해 불평하고있는 것 같습니다.

나는이 일을하여 컴파일하려고 :

gcc f.c 

를 내가 얻을 :

In file included from /usr/include/machine/ansi.h:39:0, 
       from /usr/include/sys/ansi.h:35, 
       from /usr/include/stdio.h:42 
       from f.c:7: 
/usr/include/machine/int_types.h:45:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'typedef' 
In file included from /usr/include/sys/inttypes.h:39:0, 
       from /usr/include/inttypes.h:36, 
       from /usr/include/netdb.h:98, 
       from f.c:9: 
/usr/include/sys/stdint.h:39:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int8_t' 
In file included from /usr/include/ara/inet.h:69:0, 
       from netlib.h:7, 
       from f.c:16: 
/usr/include/netinet/in.h:242:2: error: expected specifier-qualifier-list before '__int8_t' 
/usr/include/netinet/in.h:259:2: error: expected specifier-qualifier-list before '__int8_t' 

을 그리고 이것은 내 .c 파일입니다 :

#include <stdio.h> 
#include <string.h> 
#include <netdb.h> 
#include <sys/socket.h> 
#include <unistd.h> 
#include <errno.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 
#include "netlib.h" 


#include <stdlib.h> 

#define MACHSIZE 50 
#define BUFFSIZE 256 
#define MAXCONN  100 
#define MAXFILES 500 
#define COMBUFF  200 

struct Connection{ 
     int conn; 
    in_addr_t ip; 
    int port; 
    int numFilesOpened; 
}; 

typedef struct Connection Connection; 

Connection connection[MAXCONN]; 

struct Files{ 
    int fid; 
    long machine; 
    int conn; 
}; 

typedef struct Files Files; 

Files files[MAXFILES]; 
int filesOpened = 0; 
int port = 15061; 
int numCli = 0; 
char command[COMBUFF]; 
char response; 
int conn; 
char buffer[BUFFSIZE]; 

... 

더있다 하지만 저는 도서관과 관련이 있다고 생각합니다. 그래서 당신이 저를 도울 수있을 것입니다.

아무도 여기를 볼 수 있습니까?

또한 중요한 경우 NetBSD에서이 작업을 수행하고 있지만 FreeBSD에서 시도했지만 동일합니다.

+1

정말이게 맞습니까? stdio.h는 포함하고있는 최초의 헤더 파일이며 gcc 명령에'-D' 매개 변수가 없습니다. 그렇다면 컴파일러 설치가 잘못되었다고 생각합니다. 확실한 것은 그것이 도달하기 전에 오류가 발생하기 때문에 오류가 코드에서 올 수 없다는 것입니다. – Medinoc

+0

@Medinoc 와우 - 그게 정말로 내가 첫 번째 줄 앞에 'f'가 있음을 알게 한 당신의 의견입니다 (단지 코멘트 였기 때문에 여기에 포함되지 않았습니다). 고맙습니다! – coconut

답변

1

매우 신비합니다.

"from rfa_cli.c : 7 :"과 같은 오류 메시지는 C 파일의 "첫 번째"줄 "#include ..."앞에 6 줄의 코드가 있음을 의미합니다. 어쩌면 편집자에게이 줄을 숨기는 문제가있을 수 있습니다 - 길잃은 줄 끝 또는 뭔가. 첫 번째 오류가 여전히 발생하는지 확인하려면 파일에서 "#include ..."만 사용하여 컴파일하십시오. 그렇다면 깨끗한 텍스트 파일로 다시 시작하십시오.

또한 "f.c"를 컴파일 중이지만 오류 메시지는 "rfa_cli.c"라고 말합니다. 제발 좀 더 자세히 설명해주세요.