1. xcode 创建 一个mac 静态库,( 编译时选成动态的,如果是static python load 失败)
这里直接用xcode 编译,实际用gcc效果是一样的。
这用下边的测试了一下,是一样的。
gcc hug.cpp -fPIC -shared -o libhug.so
2. 生成 hug.cpp
这里一定要加 extern "C"
extern "C"
{
int add2(int x, int y){
return (x+y);
bool hug( char* a, char* b, bool c )
{
printf("%s%s",a,b);
return true;
}
3. 生成了 libhug.a ( 改成libhug.so i copy 到 tmp 文件夹 )
4. python 调用
python ctypes doc 地址
https://docs.python.org/2/library/ctypes.html
import cv2
from ctypes import *
lib = CDLL('/tmp/libhug.a')
print lib.add(1,2)
a = create_string_buffer("/tmp/a6.png")
b = create_string_buffer("/tmp/aa6.png")
print lib.hug( a,b, True )