2

私の OOT モジュールでは、関数を「noblock」タイプとして記述しました。それを GRC にインポートしたいと考えています。

コンパイル プロセスとインストールはうまくいき、Python で記述した関数を および を使用して使用できるようにimport my_module as mmなりmm.my_python_function()ました。

しかし、これはC++のものでは機能せず、エラーメッセージが表示されます:

パラメータ - 値 (値): 値 "my_module.my_cpp_function()" を評価できません: 'module' オブジェクトには属性 'my_cpp_function' がありません

私は何が欠けていますか?これは swig と関係がありますか? 設定方法は?ありがとうございました。

注:Ubuntu 14.04を実行しており、GRCはPyBombsを使用してインストールされていますprefix = /usr/local

4

1 に答える 1

0

近くにいるようで、swig が正しく設定されているようです。私は過去 2 日間これと戦ってきましたが、gr-digital で行われていることを模倣していると思われるアプローチを考え出しました。ただし、すべてを説明する前に、「インポート」ブロックを GRC に追加してから、「インポート」として「インポート my_module」を入力してみましたか?

Pythonでモジュールをインポートして使用できたので、そう思います。

swig/my_module.i のようなものを作成しましたか? テンプレートとして gr-digital/swig/packet_header.i に従います。次に、swig/CMakeLists.txt の最後の install() ステートメントに my_module.i が含まれていることを確認します。もう一度、ガイダンスとして gr-digital/swig/CMakeLists.txt を見てください。

最後に、 swig/_swig.i が含まれていることを確認してください

#include "<module_name>/my_module.h"

以降

%include "<module_name>/my_module.h"

ファイルの最後に

%include "my_module.i"

繰り返しますが、packet_header の使用例については、gr-digital/swig/digital_swig.i を参照してください。

于 2016-04-14T21:42:35.347 に答える