0

我正在尝试从 libev-3.8(在 OSX 10.8 上编译良好)升级到 libev-4.15 并收到以下错误。

third_party/libev-4.15/ev.h:234: error: expected identifier before numeric constant
third_party/libev-4.15/ev.h:234: error: expected `}' before numeric constant
third_party/libev-4.15/ev.h:234: error: expected unqualified-id before numeric constant
third_party/libev-4.15/ev.h:842: error: expected declaration before ‘}’ token

链接到 ev.h:http ://cvs.schmorp.de/libev/ev.h?revision=1.171&view=markup

我的系统配置:

checking host system type... i386-apple-darwin12.3.0
checking target system type... i386-apple-darwin12.3.0
checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld
checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no
checking how to convert i386-apple-darwin12.3.0 file names to i386-apple-darwin12.3.0 format... func_convert_file_noop
checking how to convert i386-apple-darwin12.3.0 file names to toolchain format... func_convert_file_noop
checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r

FWIW,相同的配置在 CentOS5.6 上编译得很好。

4

1 回答 1

1

Turns out the issue was that on OSX "EV_ERROR" declared in "ev.h" conflicts with that declared in "/usr/include/sys/event.h".

As a fix, I had to forward declare the ev variables that I used instead of including ev.h directly in one of my source files. That did the trick.

于 2013-05-21T20:59:33.203 回答