Pybind11 でラッパーを作成する際に Python の共有ライブラリが必要になった#
Pybind11 で C++ の関数の Python ラッパーを作成しようとしたところ、 Python のインタプリタに付属するライブラリが PIC (Position Independent Code) でコンパイルされていないことに対するリンクエラーが発生した。
Python のインストール時に --enable-shared
というフラグを付加することで解決する。
pyenv を使用している場合は次のようにインストールを行う。
$ PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -f 3.9.4
-f
オプションは元々インストールされているバージョンがあっても無視してインストールするものである。