2013-05-22 6 views
1

J'ai un morceau de code que j'ai utilisé pour courir sans problèmes. Mais maintenant je vais y revenir et je ne peux même pas le compiler!Erreurs de compilation Je ne peux pas comprendre

La pièce qui ne compile pas est un fichier .c et je pense qu'il se plaint des bibliothèques.

J'essaie de le compiler en faisant ceci:

gcc f.c 

Et je reçois:

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' 

Et ceci est mon fichier .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]; 

... 

Il y a plus à mais je pense que cela a à voir avec les bibliothèques, donc vous pourriez être en mesure de m'aider avec cela.

Quelqu'un peut-il voir quelque chose ici?

Aussi, au cas où c'est important, je le fais sur NetBSD mais j'ai essayé sur FreeBSD et c'est la même chose.

+1

Est-ce vraiment comme ça? stdio.h est le tout premier fichier d'en-tête que vous incluez et il n'y a pas de paramètres '-D' dans votre commande gcc? Si c'est le cas, je pense que l'installation de votre compilateur est cassée. Ce qui est sûr, c'est que l'erreur ne peut provenir de votre code car il échoue avant même qu'il ne l'atteigne. – Medinoc

+0

@Medinoc wow - votre commentaire demandant si c'était vraiment ça m'a fait voir que j'avais un 'f' juste avant la première ligne (non inclus ici car c'était juste un commentaire). JE VOUS REMERCIE! – coconut

Répondre

1

Très mystérieux. Vos messages d'erreur comme "from rfa_cli.c: 7:" impliquent qu'il y a 6 lignes de code avant la "première" ligne "#include ..." de votre fichier C. Il y a peut-être un problème avec votre éditeur qui cache ces lignes - une fin de ligne perdue ou quelque chose comme ça. Recommandez d'essayer de compiler avec seulement "#include ..." dans votre fichier pour voir si la première erreur se produit encore. Si c'est le cas, recommencer avec un fichier texte propre. En outre, vous dites que vous compilez "f.c", mais les messages d'erreur indiquent "rfa_cli.c". S'il vous plaît élaborer.

Questions connexes