gpt4 book ai didi

conditional - 基于外部值的 Cython 条件编译

转载 作者:行者123 更新时间:2023-12-03 22:52:44 24 4
gpt4 key购买 nike

我尝试从 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

    关于conditional - 基于外部值的 Cython 条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826458/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com