Link zu Python mit MinGW

8

Ich möchte ein plattformübergreifendes Programm erstellen, das den Python-Interpreter einbindet und es mit MinGW kompiliert. Aber die Binary-Distribution von Python stellt keine Bibliotheken zur Verbindung mit MinGW zur Verfügung (nur python32.lib für Visual C ++), und das Python-Source-Paket bietet keine Unterstützung für die Kompilierung mit MinGW.

Ich habe versucht, auf python32.lib in Mingw mit -lpython32 zu verlinken, aber es erzeugt immer noch Fehler wie:

%Vor%

Wie verbinde ich Python in MinGW? Ich möchte wirklich nicht zu Visual C ++ wechseln.

    
Lukas Schmelzeisen 18.07.2011, 09:46
quelle

3 Antworten

7

Mit nm und dlltool von binutils sollten Sie die Bibliothek für gcc:

neu erstellen können %Vor%

python_test.c:

%Vor%

Kompilieren:

%Vor%

Test:

%Vor%

Bearbeiten : Wenn Sie das selbst auf x64 überspringen möchten, können Sie es für verschiedene Versionen von Christoph Gohlkes Inoffizielle Windows-Binärdateien für Python-Erweiterungspakete .

Bearbeiten : Hier ist eine Python-Version, die auf der vorhandenen Funktion basiert, die in Tools / msi / msi.py verteilt ist:

%Vor%

Zum Beispiel:

%Vor%     
eryksun 18.07.2011, 10:50
quelle
6

Probieren Sie das aus ...

  1. Laden Sie gendef für Ihre Version von mingw herunter (32 oder 64 bit ) und in msys shell ...
  2. Ausführen gendef /c/windows/system32/python32.dll
  3. Ausführen dlltool -D python32.dll -d python32.def -l libpython32.a
  4. Kopieren Sie libpython32.a in Ihr ./python32/libs -Verzeichnis.

Wenn Ihre libpython32.a -Datei 0 Bytes ist, ist etwas schief gelaufen. Überprüfen Sie, ob Sie die richtige Version von gendef für Ihre Version von mingw / msys heruntergeladen haben. Wenn Sie einen 64-Bit-Build ausführen, müssen Sie wahrscheinlich die Gendef-Binärdateien herunterladen und sich selbst kompilieren, aber das ist einfach genug.

Ich hoffe, das hilft.

    
RMWChaos 23.07.2012 19:51
quelle
0

EmbeddingPython.c

%Vor%

und benutze gcc wie folgt:

%Vor%

und es funktioniert wie erwartet.

%Vor%     
John Lin 29.08.2014 07:26
quelle

Tags und Links