编程语言
首页 > 编程语言> > 如何在Python中使用librt函数?

如何在Python中使用librt函数?

作者:互联网

我正在尝试使用第三方.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?

解决方法:

你需要加载它

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

为了使其可供其他图书馆使用.

标签:python,c-3,linux,shared-libraries,perforce
来源: https://codeday.me/bug/20190530/1183453.html