Это очень озадачивает меня, потому что код компилируется без ошибок в системе Debian 5, но в FreeBSD 7 я получаю синтаксическую ошибку здесь, например, в строке 98.
int ipmi_fru_get_board_info_mfg_time(ipmi_fru_t *fru, time_t *time);
Первоначально между * fru и time_t был разрыв строки. Не уверен, что может вызвать эти ошибки компилятора, но важно упомянуть разрыв строки.
Или этот из строки 298 остался полностью неизменным в своем формате.
int ipmi_fru_get(ipmi_fru_t *fru,
int index,
char **name,
int *num,
enum ipmi_fru_data_type_e *dtype,
int *intval,
time_t *time,
char **data,
unsigned int *data_len);
Это неизмененные ошибки, выводимые на терминал.
In file included from out_fru.c:37:
../include/OpenIPMI/ipmi_fru.h:98: error: expected declaration specifiers or '...' before 'time_t'
../include/OpenIPMI/ipmi_fru.h:298: error: expected declaration specifiers or '...' before 'time_t'
../include/OpenIPMI/ipmi_fru.h:474: error: expected declaration specifiers or '...' before 'time_t'
../include/OpenIPMI/ipmi_fru.h:559: error: expected declaration specifiers or '...' before 'time_t'
../include/OpenIPMI/ipmi_fru.h:627: error: expected declaration specifiers or '...' before 'time_t'
Последующие ошибки кажутся связанными, поскольку они влияют на функции, объявленные в приведенных выше строках заголовочного файла ipmi_fru.h.
out_fru.c: In function 'ipmi_cmdlang_dump_fru_info':
out_fru.c:87: warning: passing argument 7 of 'ipmi_fru_get' from incompatible pointer type
out_fru.c:87: warning: passing argument 8 of 'ipmi_fru_get' from incompatible pointer type
out_fru.c:87: error: too many arguments to function 'ipmi_fru_get'
Что может быть причиной этих странных синтаксических ошибок платформы? Моей первой мыслью был какой-то непечатаемый символ, но я попытался проверить с помощью команды cat -e include / OpenIPMI / ipmi_fru.h | меньше я вижу только пробелы и разрывы строк.