Erstellen einer eigenständigen Anwendung mit Cython + MinGW
Ich versuche, eine eigenständige Anwendung aus Python-Code zu erstellen. Im Moment ist es nur ein "Hallo Welt" -Programm. Ich kompiliere es mit Cython, um eine .c-Datei zu erhalten:
"c: \ python34 \ scripts \ cython.exe" - hello.py
Das funktioniert gut. Dann versuche ich, die generierte .c-Datei wie folgt zu kompilieren und zu verknüpfen:
"c: \ mingw32 \ bin \ gcc.exe" -I "c: \ python34 \ include" -L "c: \ python34 \ libs" -lpython34 -ohello.exe hello.c
Das gibt mir eine ganze Reihe von Linkfehlern:
... \ cc7PmSei.o: hello.c :(. text + 0xe9): undefinierter Verweis auf "_imp__PyTuple_New"
... \ cc7PmSei.o: hello.c :(. text + 0x130): undefinierter Verweis auf "_imp__PyBytes_FromStringAndSize"
... \ cc7PmSei.o: hello.c :(. text + 0x177): undefinierter Verweis auf "_imp__PyModule_Create2"
...
... \ cc7PmSei.o: hello.c :(. text + 0x12b7): undefinierter Verweis auf "_imp__PyUnicode_Decode"
... \ cc7PmSei.o: hello.c :(. text + 0x12dd): undefinierter Verweis auf "_imp__PyUnicode_FromStringAndSize"
... \ cc7PmSei.o: hello.c :(. text + 0x1303): undefinierter Verweis auf "_imp__PyBytes_FromStringAndSize"
... / libmingw32.a (main.o): main.c: .text.startup + 0xa7): undefinierter Verweis auf `WinMain @ 16 '
collect2.exe: Fehler: ld hat 1 Exit-Status zurückgegeben
Weitere Informationen: Ich habe Windows 7 Home 64-Bit-Betriebssystem. Ich verwende Python 3.4.1 32-Bit, Cython-0.20.1 und TDM-GCC 4.7.1 32-Bit.
Ich habe nachgeforscht. Einige Leute sagen, dass es zum Beispiel durch die Verwendung von 32-Bit-C-Compiler und 64-Bit-Python verursacht werden kann. Dies ist hier jedoch nicht der Fall. Andere (http://eli.thegreenplace.net/2008/06/28/compiling-python-extensions-with-distutils-and-mingw/) sagen, dass ich libpython34.a erstellen muss. Aber meine Version von Python wurde bereits mit dieser Datei ausgeliefert.
Hat jemand eine Idee was ich falsch mache? Danke im Voraus.