美文网首页
python加载C的动态库.so

python加载C的动态库.so

作者: 靖哥哥编程 | 来源:发表于2023-01-11 15:24 被阅读0次

直接拷贝可以用,普通调用
python脚本

      from ctypes import cdll
      print("==================\n")
      lib = cdll.LoadLibrary('./libtest.so')

      a = lib.add(11, 2)

      str = lib.test()
      print(str) 

     print("add: ",a)
     print("==================\n")

生成libtest.so

    gcc -fPIC -shared test.c -o libtest.so

C代码:

 #include "test.h"
 int test(){
   printf("hello so====\n");
   return 0;
 }

 int add(int a, int b){
    return a+b;
 }

.h文件

#include "stdio.h"

int test();
int add(int, int);

以上代码可以直接使用,

还可以通过FFI加载.so库,python脚本编写方法

 from cffi import FFI
 ffi = FFI()

 lib_IOTCAPIs = ffi.dlopen("./libtest.so")
 ffi.cdef("int test();")
 lib_IOTCAPIs.test()  # 调用print


 ffi.cdef("int add(int a, int b);")
 kkk = lib_IOTCAPIs.add(1,3)  # 调用
 print("add: ", kkk)

相关文章

网友评论

      本文标题:python加载C的动态库.so

      本文链接:https://www.haomeiwen.com/subject/vzjvcdtx.html