Pythonで共有ライブラリからいくつかの関数を使いたいと思います。 Pythonのドキュメントから、私はctypesが良い選択であることを知っています。しかし、そのようなライブラリには未定義のシンボルがいくつかあります。シンボルを取得するために別の共有ライブラリにリンクする必要があります。python ctypesリンクされた複数の共有ライブラリgsl gslcblas
g ++では、簡単です:g ++ main.cpp -la -lb。必要な機能はliba.soにあり、liba.soにはlibb.soで解決できる未定義の関数がいくつかあります。
しかし、どのようにctypesでそれを行うには? ctypes.cdll.LoadLibrary( 'liba.so')にはいくつかの未定義のシンボルがあり、ctypesにlibb.soを見つける方法を教えていますか? ldd liba.soはlibb.so.へのリンクを表示しないためです。
例:gslでいくつかの関数を使いたいです。 ++グラムで:
g++ main.cpp -lgsl -lgslcblas
とのLDD libgsl.soはPythonでlibgslcblas
へのリンクが表示されません。
ctypes.cdll.LoadLibrary('libgsl.so')
libgslcblasを見つけるために、ctypesのを伝えるためにどのように?
scalapackを使用する場合も同じ問題が発生します。私はUbuntuの16.04