Python 之操作so動態庫

2021-10-04 18:42:18 字數 715 閱讀 6362

python呼叫linux下的so檔案

#建立乙個max.c檔案

int max(int a, int b)

/*執行如下指令編譯生成so動態庫

gcc max.c -fpic -shared -o  max.so

* -shared 為鏈結庫 讓編譯器知道是要編譯乙個共享庫

* -fpic(position independent code) 編譯生成**與位置無關

* 如果向能夠除錯可機上-g -wall等引數

*/

#!/usr/bin/python

#ctypes是python中呼叫c動態鏈結庫的函式;

#使用cdll動態載入共享庫,乙個共享庫對應乙個cdll物件;

#呼叫cdll的loadlibrary方法或直接呼叫其建構函式傳進乙個cdll物件;

#關於ctypes可搜尋「python ctypes」來檢視

from ctypes import cdll

cur = cdll.loadlibrary('./max.so')

a = cur.max(1111, 2)

print(a)

然後執行python即可。

Linux 動態庫 so 使用

折騰了會 dll 覺得不爽,改玩 so 去 一.編寫個c檔案 test.c include file test.c int say int add int x,int y 二.編譯成動態庫 so gcc shared o test.so test.c usr lib gcc x86 64 pc li...

動態庫 so 函式呼叫

最近剛剛換工作,第一次接觸到要從.so動態庫檔案裡呼叫函式。目前只得到.so庫檔案和封裝的各類函式介面。在網上搜了一些,然後根據自己的 做了整理。首先,理解動態庫,linux中的.so檔案類似於windows中的dll,是動態鏈結庫。當多個程式使用同乙個動態鏈結庫時,既能節約可執行檔案的大小,也能減...

so動態連線庫遷移

1 找到對應路徑 cd usr local lib 2 將.so檔案拷貝到指定伺服器中 scp r locka root 192.168.0.54 root 3 將檔案存放於 usr local lib目錄 4 靜態編譯路徑新增 在 etc ld.so.conf.d 目錄下,新建檔案 lock x8...