Python — Как импортировать функцию («noblock»), написанную на C ++, в GRC

В моем модуле OOT я написал функцию типа «noblock», и я хотел бы импортировать ее в GRC.

Процесс компиляции и установки прошел хорошо, и я могу использовать функции, которые я написал в Python, используя import my_module as mm а также mm.my_python_function(),

Но это не работает для C ++, и у меня есть сообщение об ошибке:

Param — значение (значение): значение «my_module.my_cpp_function ()» не может быть
оценено: у объекта ‘module’ нет атрибута ‘my_cpp_function’

Что мне не хватает, пожалуйста? Это как-то связано со свигом? Как это настроить? Спасибо.

Примечание: я использую Ubuntu 14.04, и GRC был установлен с использованием PyBombs с prefix = /usr/local

2

Решение

Звучит так, будто вы близко, и этот глоток настроен правильно. Я боролся с этим в течение прошлых 2 дней и выработал подход, который, я думаю, подражает тому, что сделано в gr-digital. Однако, прежде чем я изложу все это, вы пытались добавить блок «Импорт» в GRC и затем ввести «импорт my_module» в качестве его «Импорт»?

Я как бы полагаю, так как вы смогли импортировать и использовать модуль в Python.

Вы создали что-то вроде swig / my_module.i? Следуйте gr-digital / swig / packet_header.i в качестве шаблона. Затем убедитесь, что swig / CMakeLists.txt включает my_module.i в оператор install () в конце; снова, посмотрите на gr-digital / swig / CMakeLists.txt для руководства.

Наконец, убедитесь, что ваш swig / _swig.i включает

#include "<module_name>/my_module.h"

и позже

%include "<module_name>/my_module.h"

в конце файла

%include "my_module.i"

Снова, смотрите gr-digital / swig / digital_swig.i для примеров использования packet_header.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]