Ich bin dabei, zu lernen, wie SWIG unter Windows zu verwenden.Erstellen einer DLL aus einer eingepackten CPP-Datei mit SWIG
Das folgende ist mein C++ Code:
/* 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;
}
Dies ist meine Header-Datei:
/* 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);
};
Dies ist meine Schnittstellendatei:
/* File : example.i */
%module example
%{
#include "example.h"
%}
%include "example.h"
ich es geschafft habe meine einzuwickeln C++ Code mit dem folgenden Befehl in Cygwin mit SWIG:
$swig -c++ -python -o example_wrap.cpp example.i
Meine Frage ist, wie kann ich eine DLL von diesem Punkt mit dem generierten Code (example_wrap.cpp) erstellen? Irgendwelche Ideen?
Ich habe versucht, eine DLL mit Visual Studio C++ 2010 zu schaffen, aber ich erhalte die Build-Fehler:
LINK : fatal error LNK1104: cannot open file 'python27_d.lib
ich mit SWIG ziemlich neu bin so wäre jede Hilfe sehr geschätzt.
Danke!
Danke Jackson für Ihre prompte Antwort! :) Ich habe die Python-Dateien überprüft und es scheint, dass es wie gesagt eine python27.lib aber keine python27_d.lib gibt. Also ich denke, die nächste Frage wäre ... Kennt jemand eine Möglichkeit, Visual Studio C++ 2010 die Release-Version von Python lib zu akzeptieren ??? – user1449530
Wenn Sie die Eigenschaften des Projekts öffnen und Linker-> Eingabe aufrufen, sollten Sie in den Zusätzlichen Abhängigkeiten einen Verweis auf die Python27_d.lib sehen. Bearbeiten Sie dies als Python27.lib und versuchen Sie es erneut zu kompilieren. – Jackson
Vielen Dank noch einmal Jackson für Ihre Zeit! Ich habe in Visual Studio 2010 Linker> Input zurückgeschaut, aber Python27_d.lib nicht gefunden. Am Ende entschied ich mich, bei Cygwin zu bleiben. Trotzdem danke! – user1449530