概述
在实际工作中,我们可能会出现跨部门之间协助,假如某部门给你提供一个c写的so,让你们自己去调用
模拟
构建so
c源码
#include <stdio.h>
void SayHello(const char* s) {
puts(s);
}
编译为so
[~]# gcc -shared -o libhello.so hello.c
Python调用
调用过程
from ctypes import cdll
import ctypes
def main():
so = cdll.LoadLibrary('./libhello.so')
str_ = "hello world"
so.SayHello(ctypes.c_char_p(str_.encode("utf8")))
if __name__ == '__main__':
main()
执行结果
[~]# python main.go
hello world
总结
- 直接使用ctype来调用so即可