如何使用Swig创建交叉编译器兼容的C ++库?

时间:2018-03-26 16:15:46

标签: c++ swig

我想将我的C ++类导出为库。我知道这是不可能轻易完成的,因为名字是被吹的。我知道你可以从C ++导出C函数。我听说Swig可能就是我想要的。我看到Swig可以将C ++导出到C.我想知道Swig是否还能够将这些C函数包装在仅头文件的C ++文件中。我正在寻找这样的东西:

此基本代码:

class Point {
    public:
        Point(int x,int y);
        int getX();
        int getY();
}

转换为此C代码:

CPoint* CPoint_alloc(int x,int y);

int CPoint_getX(CPoint* p);
int CPoint_getY(CPoint* p);

然后将生成以下C ++标头以包装C代码:

class Point {
    CPoint* p;
    public:
        Point(int x,int y){
            p = Point_alloc(x,y);
        }

        int getX(){
            return CPoint_getX(p);
        }

        int getY(){
            return CPoint_getY(p);
        }
}

Swig可以生成C ++标头吗?或者我还可以使用其他工具吗?

由于

0 个答案:

没有答案