簡體   English   中英

python加載靜態庫

[英]python load static library

我在加載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

您不能將靜態庫加載到正在運行的代碼中。 只能加載動態鏈接的庫(.so和.dll)。 靜態和動態庫具有不同的格式,屬性和用途。 靜態庫只能在編譯時與其他對象鏈接,而不能在運行時與其他對象鏈接。 Linux上的動態庫本質上是沒有主要功能的ELF文件。 靜態庫是函數的存檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM