I'm doing my first test with Cython. Basically the hello.pyx
example from http://docs.cython.org/src/quickstart/build.html
When I want to compile I get the following error:
C:[...]>python setup.py build_ext --inplace
Compiling hello.pyx because it changed.
[1/1] Cythonizing hello.pyx
running build_ext
building 'hello' extension
C:MinGWingcc.exe -mdll -O -Wall -IC:Python27include -IC:Python27PC -c he
llo.c -o buildemp.win32-2.7Releasehello.o
writing buildemp.win32-2.7Releasehello.def
C:MinGWingcc.exe -shared -s buildemp.win32-2.7Releasehello.o buildemp.
win32-2.7Releasehello.def -LC:Python27libs -LC:Python27PCbuild -lpython27
-lmsvcr90 -o C:UsersBerndDocuments99_ProjekteONGOING201412_Laufauswertung
ReproTestshello.pyd
C:Python27libs/libpython27.a: error adding symbols: File format not recognized
collect2.exe: error: ld returned 1 exit status
error: command 'C:\MinGW\bin\gcc.exe' failed with exit status 1
The file hello.c
is generated.
Any idea?
Edit 1:
Following the hint from J.J. Hakala, i did the following: move libpython27.a
away from C:Python27libs
(for example bak subdirectory), and copy python27.dll
from c:windowssystem32 to c:python27libs
Now the result is:
C:[...]>python setup.py build_ext --inplace
running build_ext
building 'hello' extension
C:MinGWingcc.exe -mdll -O -Wall -IC:Python27include -IC:Python27PC -c he
llo.c -o buildemp.win32-2.7Releasehello.o
writing buildemp.win32-2.7Releasehello.def
C:MinGWingcc.exe -shared -s buildemp.win32-2.7Releasehello.o buildemp.
win32-2.7Releasehello.def -LC:Python27libs -LC:Python27PCbuild -lpython27
-lmsvcr90 -o C:UsersBerndDocuments99_ProjekteONGOING201412_Laufauswertung
ReproTestshello.pyd
buildemp.win32-2.7Releasehello.o:hello.c:(.text+0x2d9): undefined reference
to `_imp___PyThreadState_Current'
buildemp.win32-2.7Releasehello.o:hello.c:(.text+0x3b3): undefined reference
to `_imp__PyExc_RuntimeError'
buildemp.win32-2.7Releasehello.o:hello.c:(.text+0x444): undefined reference
to `_imp___Py_NoneStruct'
buildemp.win32-2.7Releasehello.o:hello.c:(.text+0x8e1): undefined reference
to `_imp__PyExc_ImportError'
collect2.exe: error: ld returned 1 exit status
error: command 'C:\MinGW\bin\gcc.exe' failed with exit status 1
A folder buildemp.win32-2.7Release
with the files hello.def
and hello.o
is generated.
Edit 2:
Maybe the solution is here: compiling Cython with MinGW - undefined reference PyExc
I'll try to install Visual Studio and then try again. Recommendation on how to make it run on MinGW are still wellcome.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…