gpt4 book ai didi

python加载静态库

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:59 25 4
gpt4 key购买 nike

我在加载 dll 时遇到了一个新问题。我在加载带有“.so”、“.dll”扩展名的 dll 时没有遇到任何问题。现在我遇到了带有“.a”扩展名的 dll 的一些问题。它是一个静态库。下面是我的代码

Security_dll = ctypes.cdll.LoadLibrary("./staticlibraryname.a")

顺便说一句,我的操作系统环境是一个 linux open suse。我尝试执行此操作时收到的确切错误消息是:

File "module3.py", line 3, in <module>
Security_dll = ctypes.cdll.LoadLibrary("./libSecurityProductionStaticlib.a")
File "/usr/lib64/python2.7/ctypes/__init__.py", line 440, in LoadLibrary
return self._dlltype(name)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 362, in __init__
self._handle = _dlopen(self._name, mode)
OSError: ./libSecurityProductionStaticlib.a: invalid ELF header

最佳答案

您不能将静态库加载到运行代码中。只能加载动态链接库(.so 和 .dll)。静态库和动态库具有不同的格式、属性和用途。静态库只能在编译时与其他对象链接,而不能在运行时链接。 Linux 上的动态库本质上是一个没有 main 函数的 ELF 文件。静态库是函数的存档。

关于python加载静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41052832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com