W moim module OOT napisałem funkcję typu „noblock” i chciałbym ją zaimportować w GRC.
Proces kompilacji i instalacja przebiegły dobrze i jestem w stanie korzystać z funkcji, które napisałem w pythonie import my_module as mm
i mm.my_python_function()
.
Ale to nie działa dla tego w C ++ i mam komunikat o błędzie:
Param - wartość (wartość): wartość „my_module.my_cpp_function ()” nie może być rated: obiekt „module” nie ma atrybutu „my_cpp_function”
Czego mi brakuje? Czy to ma coś wspólnego z swigiem? Jak to skonfigurować? Dziękuję Ci.
Uwaga: Używam Ubuntu 14.04, a GRC został zainstalowany przy użyciu PyBombs prefix = /usr/local
Odpowiedzi:
0 dla odpowiedzi № 1Brzmi to tak, jakbyś był blisko i ten zestaw jest ustawionypoprawnie. „Walczyłem z tym przez ostatnie 2 dni i opracowałem podejście, które, jak sądzę, naśladuje to, co robi się w gr-digital. Zanim jednak wszystko to przeliteruję, czy próbowałeś dodać blok„ Import ”do GRC i następnie wpisując „importuj mój moduł” jako „Importuj”?
W pewnym sensie zakładam, że udało się zaimportować i użyć modułu w Pythonie.
Czy stworzyłeś coś takiego jak swig / my_module.ja? Śledź gr-digital / swig / packet_header.i jako szablon. Następnie upewnij się, że swig / CMakeLists.txt zawiera my_module.i w instrukcji install () na końcu; ponownie spójrz na gr-digital / swig / CMakeLists.txt, aby uzyskać wskazówki.
Na koniec upewnij się, że Twój swig / _swig.i zawiera
#include "<module_name>/my_module.h"
i później
%include "<module_name>/my_module.h"
na końcu pliku
%include "my_module.i"
Ponownie zobacz gr-digital / swig / digital_swig.i, aby zobaczyć przykłady użycia pakietu packet_header.