Ошибка Libev при компиляции

Я пытаюсь скомпилировать код с флагами gcc -g -Wall -Wextra -DNDEBUG -pedantic -ansi и использовать библиотеку libev. Я получаю следующие ошибки в затмении:

Description Resource    Path    Location    Type
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’  Project     line 827, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’  Project     line 820, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’  Project     line 821, external location: /usr/include/ev.h  C/C++ Problem
make: *** [src/Object/MySockets/MySockets.o] Error 1    Project         C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’    Project     line 551, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’   Project     line 559, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘unsigned’  Project     line 825, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘unsigned’  Project     line 826, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’  Project     line 822, external location: /usr/include/ev.h  C/C++ Problem
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’  Project     line 823, external location: /usr/include/ev.h  C/C++ Problem

Я установил пакет libev-dev в Ubuntu.

1 ответ

Решение

Ваш -ansi Флаг заставляет компилятор принимать только код C89 и включает только функции C89 в стандартных заголовочных файлах (из glibc / gcc).

libev не предназначен для компиляции строгим компилятором c89, ему нужна как минимум система posix (или, возможно, win32) - и, вероятно, он также использует несколько функций c99.

Другие вопросы по тегам