【发布时间】:2016-12-09 03:56:10
【问题描述】:
我在加载 dll 时遇到了一个新问题。我在加载带有“.so”、“.dll”扩展名的 dll 时没有任何问题。现在我对带有“.a”扩展名的 dll 有一些问题。它是一个静态库。下面是我的代码
Security_dll = ctypes.cdll.LoadLibrary("./staticlibraryname.a")
顺便说一句,我的 os env 是一个 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
【问题讨论】:
-
您是否在相同的平台/架构上构建了库?
-
问题是我没有建立图书馆。它是我正在做的一个项目,而 lib 是由另一方给我的。我已请求动态格式的 dll,但请求被拒绝。
-
假设这是一个 C 库,你必须编写一个 C 程序来调用库中的函数,并将程序与库静态链接。然后你可以从 Python 运行程序。或者,围绕静态库创建一个动态链接的包装器。 stackoverflow.com/questions/2649735/…