Ошибка 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.