【C++】 gMockのEXPECT_CALLでエラーが出た時
salmoncode
TechTopic
こんにちは!エンジニアのサーモンです。
Pythonで開発しているときに困るシーンとして、利用したいライブラリがC++でしか提供されていないことがあります。
新しく入手したハードウェアを利用したいときなどですね。
その場合は有志が作ってくれているラッパーを利用しますが、それもないことがあります。
そんなとき、C++のライブラリを呼び出すにはどうすれば良いのでしょうか。
この記事では、PythonからC++の関数を呼び出す方法について紹介します。
ぜひ最後まで読んでいってください!
PythonとC++を連携させるには、C++の関数をPythonにバインディングする必要があります。
バインディングツールはいくつかありますが、今回はpybind11を利用します。
このツールは機械学習ライブラリとして有名なpytorchにも使われているとのことなので、安心して利用できそうですね。
ちなみに、名前からしてC++11にしか対応してなさそうですが、C++14や17にも対応しているとのことでした。
pybind11はpipでインストールすることができます。
まずはC++の関数を定義し、Pythonから呼び出せるようにバインドします。
バインドには、pybind11から提供されるマクロを利用します。
Pythonからはマクロで指定したモジュール名でインポートすることができます。
この記事では、PythonからC++の関数を呼び出す方法について解説しました。