Я пытаюсь написать код на 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?