我正在学习如何在 Windows 上使用 SWIG。
以下是我的 C++ 代码:
/* File : example.cxx */
#include "example.h"
#define M_PI 3.14159265358979323846
/* Move the shape to a new location */
void Shape::move(double dx, double dy) {
x += dx;
y += dy;
}
int Shape::nshapes = 0;
double Circle::area(void) {
return M_PI*radius*radius;
}
double Circle::perimeter(void) {
return 2*M_PI*radius;
}
double Square::area(void) {
return width*width;
}
double Square::perimeter(void) {
return 4*width;
}
这是我的头文件:
/* File : example.h */
class Shape {
public:
Shape() {
nshapes++;
}
virtual ~Shape() {
nshapes--;
};
double x, y;
void move(double dx, double dy);
virtual double area(void) = 0;
virtual double perimeter(void) = 0;
static int nshapes;
};
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) { };
virtual double area(void);
virtual double perimeter(void);
};
class Square : public Shape {
private:
double width;
public:
Square(double w) : width(w) { };
virtual double area(void);
virtual double perimeter(void);
};
这是我的接口文件:
/* File : example.i */
%module example
%{
#include "example.h"
%}
%include "example.h"
我已经设法使用 SWIG 在 Cygwin 中使用以下命令包装我的 c++ 代码:
$swig -c++ -python -o example_wrap.cpp example.i
我的问题是,如何使用生成的代码(example_wrap.cpp)从现在开始创建一个 DLL?有任何想法吗?
我尝试使用 Visual Studio C++ 2010 创建 DLL,但出现构建错误:
LINK : fatal error LNK1104: cannot open file 'python27_d.lib
我对使用 SWIG 还很陌生,因此将不胜感激任何帮助。
谢谢!