2012-11-15 6 views
0

gcc -g -Wall -Wextra -DNDEBUG -pedantic -ansi 플래그를 사용하여 코드를 컴파일하고 libev 라이브러리를 사용하려고합니다. 이클립스에서 다음과 같은 오류가 나타납니다.컴파일시 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 패키지를 설치했습니다.

답변

1

-ansi 플래그를 지정하면 컴파일러가 C89 코드 만 받아들이고 (glibc/gcc의) 표준 헤더 파일에서만 C89 기능을 활성화합니다.

libev는 엄격한 c89 컴파일러로 컴파일되도록 설계되지 않았으므로 최소한 posix (또는 win32) 시스템이 필요하며 가능성이있는 몇 가지 c99 기능도 사용합니다.

+0

응답 해 주셔서 감사합니다. 나는 그것이 ansi c를 준수한다면 libev의 IRC 채널에서 어제 물었다. 그들은 그것이라고 나에게 이야기했다. 그래서 나는 틀리지 않았다. 확인해 주셔서 감사합니다. – Pio

+0

이 문제에 해결책을 추가 할 수 있다면 실제로 도움이 될 것입니다. :-) –

+0

@jparthj 문제는'-ansi' 플래그이며 해결책은 -ansi 또는 유사한 플래그를 사용하지 않는 것입니다. – nos

관련 문제