По данным сайта spinroot :
Максимальная длина строки составляет 64 КБ (65536 символов).
и
ограничение по встроенному определению
"python2.7/Python.h"
и некоторые из его собственных включений имеют размер более 64 КБ, поэтому вы получаете эту ошибку. Вы не можете просто включить всю библиотеку Python в свою спецификацию Promela (по крайней мере, с использованием spin, как это в настоящее время реализовано).
Поскольку в любом случае код C должен ссылаться на библиотеки Python, вы можете предоставить extern
определения или даже собственный файл заголовка для элементов, которые нужны вашему коду C для вызова кода Python.
Так что в вашем случае, в minimal_python.h
(я предполагаю void
возвращаемых типов, когда они не используются):
#ifndef MINIMAL_PYTHON_H
#define MINIMAL_PYTHON_H
void Py_Initialize(void);
void Py_Finalize(void);
void PyRun_SimpleString(const char *);
PyObject * PyImport_ImportModule(const char *);
void PyEval_CallObject(PyObject *, void *);
PyObject * PyObject_GetAttrString(PyObject *, const char *);
#endif
А затем demo1.c
включает minimal_python.h
вместо python2.7/Python.h
.
В случае вашего кода вам также понадобится определение для printf
и любых других стандартных библиотечных или Python-функций, так как их число превышает предел в 64 КБ.