我想在 python 中使用共享库中的一些函数。从 python 文档中,我知道 ctypes 是一个不错的选择。但是这样的库有一些未定义的符号,我应该将它链接到另一个共享库以获取符号。
在 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++ 中:
g++ main.cpp -lgsl -lgslcblas
并且 ldd libgsl.so 没有显示到 libgslcblas 的链接
在蟒蛇中:
ctypes.cdll.LoadLibrary('libgsl.so')
如何告诉 ctypes 找到 libgslcblas?
如果我使用 scalapack,也会发生同样的问题。我使用 ubuntu 16.04