Python部分
步骤:
1. 导入ctypes。
2. 调用ctypes.CDLL("/api.so") ,此处共享库文件放在根目录。
3. 调用api.so中封装的函数add,得到返回值。
#!/usr/bin/python
import ctypes
plib = ctypes.CDLL('/api.so')
print "result: %d" %(plib.add(1,2))
C++部分
#include <Python.h>
class MyClass {
public:
int add(int x,int y) { return x+y; }
};
extern "C" int add(int x,int y)
{
MyClass obj;
return obj.add(x,y);
}
Makefile
OBJ=main.o
#CC=gcc
GG=arm-linux-g++
$(OBJ):hello.cpp
#$(CC) -o $(OBJ) hello.c
$(GG) -fPIC hello.cpp -o api.so -shared -I /home/sink/work/src/rootfs/rootfs_mini6410/usr/include/python2.7
install:
cp $(OBJ) /usr/sbin
uinstall:
rm $(OBJ) /usr/sbin/main.o
clean:
rm -f *.so
Python调用C/C++
最新推荐文章于 2022-05-10 16:49:28 发布