Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python加载静态库_Python_Linux_Dll - Fatal编程技术网

python加载静态库

python加载静态库,python,linux,dll,Python,Linux,Dll,我在加载dll时遇到了一个新问题。加载带有“.so”、“.dll”扩展名的dll时,我没有遇到任何问题。现在我对扩展名为“.a”的dll有一些问题。它是一个静态库。下面是我的代码 Security_dll = ctypes.cdll.LoadLibrary("./staticlibraryname.a") 顺便说一句,我的os env是一个linux开放suse。我尝试执行此操作时收到的确切错误消息是: File "module3.py", line 3, in <module>

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

Security_dll = ctypes.cdll.LoadLibrary("./staticlibraryname.a")
顺便说一句,我的os env是一个linux开放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
文件“module3.py”,第3行,在
Security_dll=ctypes.cdll.LoadLibrary(“./libSecurityProductionStaticlib.a”)
LoadLibrary中的文件“/usr/lib64/python2.7/ctypes/_init__uuu.py”,第440行
返回自我类型(名称)
文件“/usr/lib64/python2.7/ctypes/_init__.py”,第362行,在_init中__
self.\u handle=\u dlopen(self.\u名称,模式)
OSError:./libSecurityProductionStaticlib.a:无效的ELF头

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

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

您是否在相同的平台/体系结构上构建了库?可能的重复是我没有构建库。这是我正在做的一个项目,lib是另一方给我的。我要求dll采用动态格式,但请求被拒绝。假设这是一个C库,您必须编写一个C程序,从库中调用函数,并将程序与库静态链接。然后可以从Python运行该程序。或者,围绕静态库创建一个动态链接的包装器。你是否在相同的平台/架构上构建了库?可能的重复是我没有构建库。这是我正在做的一个项目,lib是另一方给我的。我要求dll采用动态格式,但请求被拒绝。假设这是一个C库,您必须编写一个C程序,从库中调用函数,并将程序与库静态链接。然后可以从Python运行该程序。或者,围绕静态库创建一个动态链接的包装器。正如我所说,你不能这样做。正如我所说,你不能这样做。