2016-07-09 6 views
0

In Gevent 1.1 gibt es zwei Backends, Cython und Cffi. Was ich verwirre ist _corecffi_build.py.Einige Verwirrung über gevent (cffi) Setup

In line 331,

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

Ich weiß nicht, warum ffi.set_source nicht Quellen nicht angeben zu verwandten c-Dateien enthalten. Und _source enthält nur einige Deklarationen.

Wie sind die c-Quelldateien enthalten?

Antwort

1

Die "c source files" sind in einer libev-spezifischen Weise enthalten. In der _source Zeichenfolge wir #define LIBEV_EMBED vor uns #include "libev.h". Das Setzen dieses Makros bewirkt, dass sich libev.h selbst auf #include "ev.c" bezieht, was die Quelle ist, die libev benötigt.

+0

Warum sollte man diesen Weg verwenden, anstatt den Parameter ** sources ** anzugeben? – Jacky

+0

Denn so funktioniert Libev. Wir haben keine Kontrolle darüber. –