Обертывание класса C++ в Python с помощью SWIGC++

Программы на C++. Форум разработчиков
Гость
Обертывание класса C++ в Python с помощью SWIG

Сообщение Гость »


example.h:

#ifndef EXAMPLE_H #define EXAMPLE_H класс Математика { публика: INT Пи () Констант; недействительный пи (интервал пи); частный: интервал _пи; }; #endif example.cpp:

#include "example.h" int Math::pi() const { верните это->_pi; } void Math::pi(int pi) { это->_pi = пи; } example.swig:

Пример%модуля %{ #define SWIG_FILE_WITH_INIT #include "example.h" %} %include "example.h" Затем я генерирую оболочки «example.py» и «example_wrap.c», используя:

swig -python example.swig Когда я пытаюсь скомпилировать класс-оболочку, используя:

g++ -fPIC -c example.cpp example_wrap.c -I/usr/local/include/python2.6/ Я получаю следующую ошибку:

example_wrap.cpp: В функции «PyObject* Swig_var_Math_get()»: example_wrap.cpp:2725: ошибка: ожидаемое первичное выражение перед «void» example_wrap.cpp:2725: ошибка: ожидается ")" перед "void" Ошибка находится в следующей строке:

pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&Math), SWIGTYPE_p_class, 0 ); #define SWIG_as_voidptr(a) (void *)((const void *)(a)) Правильно ли создать класс-оболочку "example_wrap.c"?

Вернуться в «C++»