4

我正在尝试使用第三方 .so,P4API.so,它调用 librt.so 中定义的 clock_gettime,并希望我的脚本的用户不必设置 LD_PRELOAD。所以在init .py 文件中,我有:

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?

4

1 回答 1

6

你需要加载它

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

为了使其可用于其他图书馆。

于 2012-05-01T17:05:06.060 回答