c/cとpython
これをpythonとインターフェイスするには、それらを認識するためのctypesの関数をextern "c"として宣言する必要があります:
extern "c" { foo* foo_new(){return new foo(); } void foo_bar(foo* foo){foo-> bar(); } }
次に、
#includeclass Foo{ public: void bar(){ std::cout g -c -fpic foo.cpp -o foo.oを使用して、このコードを共有ライブラリにコンパイルします。 g -shared -wl、-soname、libfoo.so -o libfoo.so foo.o 最後に、pythonラッパーを作成します:
#includeclass Foo{ public: void bar(){ std::cout from ctypesインポートcdll lib = cdll.loadlibrary( './ libfoo.so') クラスfoo(オブジェクト): def __init __(self): self.obj = lib.foo_new() def bar(self): lib.foo_bar(self.obj) このラッパーとともに、PythonでCライブラリと対話できます:
#includeclass Foo{ public: void bar(){ std::cout f = foo() f.bar()#標準出力 に "hello"を印刷します
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3