У меня есть кусок кода, который я использовал для запуска без проблем. Но теперь я возвращаюсь к нему, и я просто не могу его скомпилировать!Ошибки компиляции Я не могу понять
Кусок, который не компилируется, является .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, и это то же самое.
Действительно ли это так? stdio.h - это самый первый заголовочный файл, который вы включаете, и в вашей команде gcc нет параметров '-D'? Если это так, я думаю, что ваша установка компилятора нарушена. Уверен, что ошибка не может исходить из вашего кода, так как она терпит неудачу, прежде чем она даже дойдет до нее. – Medinoc
@Medinoc wow - ваш комментарий, спрашивающий, действительно ли это заставило меня увидеть, что у меня есть «f» прямо перед первой строкой (не включенной здесь, потому что это был просто комментарий). СПАСИБО! – coconut