Cython: проверить, определен ли символ во внешнем заголовке - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь написать код на Cython, который будет работать на нескольких * nix системах. У меня есть файлы pxd, где я по сути делаю это:

cdef extern from 'lib.h' nogil:
    cdef enum option_enum:
        LIB_O_OPTION_1
        LIB_O_OPTION_2
        ...
        LIB_O_OPTION_N

    cdef void lib_function(int options)

В некоторых системах некоторые параметры не определены. Это приводит к неопределенной ошибке символа во время компиляции, так как код C, который генерирует Cython, использует значения перечисления.

В коде C это можно обойти, используя макрос для проверки информации о системе, и тогда используйте только доступные варианты. Поскольку нет поддержки макросов, как лучше всего решить эту проблему с помощью Cython?

...