2013-09-14 3 views
1

У меня есть .so библиотека C++ (без исходного кода) и .h заголовочный файл для нее, и я хочу использовать эту библиотеку в каком-то проекте Python.Python wrapper для библиотеки C++

Я искал ее и узнал, что могу использовать Boost.Python или SWIG для создания оболочки для C++ lib. Но я не нашел пример или руководство по работе с уже скомпилированным lib с помощью SWIG.

Что касается Boost.Python Я не нашел руководство для автоматической упаковки всей функции с использованием файла заголовка (только для того, чтобы обернуть, например, одну функцию).

Я ищу пример или ссылки, которые могут помочь. Спасибо за чтение.

ответ

2

С обложкой SWIG библиотеки с только заголовком и DLL/SO ничем не отличается от упаковки любой другой библиотеки с помощью SWIG. В своей самой основной форме вы будете определить интерфейс:

%module my 
%{ 
#include "my.h" 
%} 

%include "my.h" 

Затем вы запускаете SWIG:

swig -python my.i 

И компилировать

gcc -Wall my_wrap.c -shared -o _my.so -lpython -I/path/to/python -lmy 

Там важная вещь, что вы связаны с в библиотеке (-lmy), которая реализует функции/классы внутри вашего .h-файла, но вы должны сделать это, как правило, для создания интерфейса с SWIG.

(Если вы используете другой компилятор, вам необходимо приспособить вышеуказанное)

Смежные вопросы