Обертывание класса 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"?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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