我正在尝试编译一个带有-g -Wall -Wextra -DNDEBUG -pedantic -ansi标志的代码,并使用libev库。我在eclipse中遇到了以下错误:
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我已经在ubuntu中安装了libev-dev包。
发布于 2012-11-15 16:16:46
你的-ansi标志会导致编译器只接受C89代码,并且只会在(glibc/gcc的)标准头文件中启用C89特性。
libev不是被设计成由严格的c89编译器编译的,它至少需要一个posix (或者可能是win32)系统--而且它可能还使用了一些c99特性。
https://stackoverflow.com/questions/13393550
复制相似问题