关于 gevent (cffi) 设置的一些困惑

Some confusion about gevent (cffi) setup

在 Gevent 1.1 中,有两个后端,cython 和 cffi。我混淆的是_corecffi_build.py.

line 331

ffi.set_source('gevent._corecffi', _source, include_dirs=include_dirs)

不知道为什么ffi.set_source没有指定sources包含相关的c文件。而_source只包含一些声明。

c源文件是如何包含的?

"c source files" 以特定于 libev 的方式包含在内。在 _source 字符串中,我们在 #include "libev.h" 之前 #define LIBEV_EMBED。设置该宏会导致 libev.h 本身变为 #include "ev.c",这是 libev 源代码所需要的。