2012-05-01 41 views
3

我正在尝试使用第三方.so,P4API.so,它调用librt.so中定义的clock_gettime,并且希望我的脚本用户不必设置LD_PRELOAD。所以在初始化 .py文件,我有:如何在Python中使用librt函数?

import ctypes 

librt = ctypes.cdll.LoadLibrary('librt.so') 

这将加载库罚款,但在运行脚本仍然发出:

ImportError: /path/to/P4API.so: undefined symbol: clock_gettime 

我已经试过:

__builtins__['clock_gettime'] = librt.clock_gettime 

但这也行不通。

我怎样才能让P4API.so识别加载的librt?

+0

但是为什么P4API.so本身不与'librt.so'链接? – Electro

回答

5

您需要,以使其可用于其他库与

ctypes.CDLL('librt.so', mode=ctypes.RTLD_GLOBAL) 

加载它。

相关问题