python ctypes使用示例gsl gslcblas

时间:2016-08-31 02:23:27

标签: python linker ctypes gsl scalapack

我想在python中使用共享库中的一些函数。从python doc,我知道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的链接

在python中:

ctypes.cdll.LoadLibrary('libgsl.so')

如何告诉ctypes找到libgslcblas?

如果我使用scalapack也会发生同样的问题。我使用的是ubuntu 16.04

1 个答案:

答案 0 :(得分:1)

old answer告诉我应用Object.subClass = function(properties) { initializing = true; var proto = new this(); initializing = false; function Class() { console.log(initializing) } Class.prototype = proto; Class.constructor = Class; Class.subClass = arguments.callee; return Class; }; var Constructor = Object.subClass() var subConstructor = Constructor.subClass() // true var instance = new subConstructor() // false // if var initializing = true; var proto = new this(); initializing = false; var Constructor = Object.subClass() var subConstructor = Constructor.subClass() // false var instance = new subConstructor() // false,即在这种情况下

mode=ctypes.RTLD_GLOBAL