PythoncTypes在头文件中调用静态内联函数?

2024-10-02 14:19:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python的cype调用Linux上的英特尔处理器跟踪库(libipt)。库中的一个初始化函数pt_config_init()在intel pt.h头文件中定义为静态内联函数。当我试图从Python代码调用此函数时,它会抛出以下错误:

  libipt.pt_config_init(byref(config))
File "/usr/lib64/python3.5/ctypes/__init__.py", line 355, in __getattr__
  func = self.__getitem__(name)
File "/usr/lib64/python3.5/ctypes/__init__.py", line 360, in __getitem__
  func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /lib64/libipt.so.1.4.0: undefined symbol: pt_config_init

这是有意义的,因为函数不是编译到库中的,而是通过在相关的C源代码中包含头文件来访问的。有没有一种方法可以用ctypes调用这样的内联函数,如果是,如何调用?有没有建议的解决办法?在


Tags: 函数inpyselfptconfig头文件init
1条回答
网友
1楼 · 发布于 2024-10-02 14:19:10

不,不可能。在

这个函数不仅没有被你的库导出,它根本不可能存在!在

当编译器决定值得内联时(关键字只是建议) 函数体被复制/粘贴在未定义内联时通常调用的所有位置。在

相关问题 更多 >