我尝试从 Cython pxd 有条件地编译(或生成)为 c 代码。我读到我可以 DEF 定义 aa 值,并 IF 根据其值有条件地生成,但是如何从 pxd 文件外部获取该值?
具体来说,这两个案例现在对我来说很有趣:
- 为 Cython 提供一些命令行定义,最好通过 Cython.Distutils setuptools 方式
- extern-ed C 头文件定义了一些值,并根据该值有条件地使用 Cython 定义(现在也许不可能?)
谢谢
您可以生成一个 pxi 文件,并在执行 IF 之前包含它(与 ./configure 也生成 config.h 相同。)
例如,这就是我们在 Kivy setup.py 中所做的事情:
c_options = {
'use_opengl_es2': True,
'use_opengl_debug': False,
'use_glew': False,
'use_mesagl': False}
print 'Generate config.pxi'
with open(join(dirname(__file__), 'kivy', 'graphics', 'config.pxi'), 'w') as fd:
for k, v in c_options.iteritems():
fd.write('DEF %s = %d\n' % (k.upper(), int(v)))
然后,在你的 pxd 中:
include "config.pxi"
IF USE_OPENGL_DEBUG == 1:
# do other import or whatever you want
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)