2013-05-22 3 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 wow - ваш комментарий, спрашивающий, действительно ли это заставило меня увидеть, что у меня есть «f» прямо перед первой строкой (не включенной здесь, потому что это был просто комментарий). СПАСИБО! – coconut

ответ

1

Очень загадочный.

Ваши сообщения об ошибках типа «от rfa_cli.c: 7:» подразумевают наличие 6 строк кода перед «первой» строкой «#include ...» вашего C-файла. Возможно, есть некоторые проблемы с вашим редактором, который скрывает эти строки - какая-то бродячая строка заканчивается или что-то в этом роде. Порекомендуйте попробовать компиляцию с помощью только «#include ...» в вашем файле, чтобы увидеть, все ли происходит первая ошибка. Если это так, начните с чистого текстового файла.

Далее вы говорите, что вы компилируете «f.c», но сообщения об ошибках говорят «rfa_cli.c». Пожалуйста, дополните.

Смежные вопросы