У меня есть указатель на структуру C, и мне нужно знать, как я могу инициализировать структуру из python после генерации библиотеки python с помощью swig.
Мне удалось скомпилировать код и запустить swig без каких-либо ошибок.Я также смог импортировать библиотеку в python.
Моя цель - научиться использовать указатели с c / swig / python.
Это функция c, которую я хочудля интеграции в Python:
#include <stdio.h>
#include "myswig.h"
myData* myhfun(myData *data){
data->s = data->r1 + data->r2;
printf("sum(%f+%f)=%f\n", data->r1, data->r2, data->s);
return data;
}
Это заголовочный файл для того же:
//file myswig.h
struct myData{
double r1;
double r2;
double s;
};
typedef struct myData myData;
myData* myhfun(myData *data);
Мой файл интерфейса Swig выглядитthis
/* file: myswig.i */
%module myswig
%{
#include "myswig.h"
%}
/*my function */
myData* myhfun(myData *data);
Скрипт для запуска swig и тестирования:
swig -python -Isrc myswig.i
gcc -Isrc -fPIC -I/usr/include/python3.5m -I/usr/include/x86_64-linux-gnu/python3.5m -lpython3.5m -c src/myswig.c myswig_wrap.c
gcc -shared -fPIC -o _myswig.so myswig.o myswig_wrap.o
python3 -c "import myswig"