2012-10-16 32 views
0

我试图通过运行使用MinGW

pip install pil 

我已经把我的编译器MinGW的汇编关于Windows 7的64位 Python图像库编译Python图像库。它看起来很好,直到编译_imaging.c。它未能对这个怪物海合会呼吁:

C:\MinGW\bin\gcc.exe -shared -s build\temp.win-amd64-2.7\Release\_imaging.o build\temp.win-amd64-2.7\Release\decode.o build\temp.win-amd64-2.7\Release\encode.o build\temp.win-amd64-2.7\Release\map.o build\temp.win-amd64-2.7\Release\display.o build\temp.win-amd64-2.7\Release\outline.o build\temp.win-amd64-2.7\Release\path.o build\temp.win-amd64-2.7\Release\libimaging\access.o build\temp.win-amd64-2.7\Release\libimaging\antialias.o build\temp.win-amd64-2.7\Release\libimaging\bands.o build\temp.win-amd64-2.7\Release\libimaging\bitdecode.o build\temp.win-amd64-2.7\Release\libimaging\blend.o build\temp.win-amd64-2.7\Release\libimaging\chops.o build\temp.win-amd64-2.7\Release\libimaging\convert.o build\temp.win-amd64-2.7\Release\libimaging\convertycbcr.o build\temp.win-amd64-2.7\Release\libimaging\copy.o build\temp.win-amd64-2.7\Release\libimaging\crc32.o build\temp.win-amd64-2.7\Release\libimaging\crop.o build\temp.win-amd64-2.7\Release\libimaging\dib.o build\temp.win-amd64-2.7\Release\libimaging\draw.o build\temp.win-amd64-2.7\Release\libimaging\effects.o build\temp.win-amd64-2.7\Release\libimaging\epsencode.o build\temp.win-amd64-2.7\Release\libimaging\file.o build\temp.win-amd64-2.7\Release\libimaging\fill.o build\temp.win-amd64-2.7\Release\libimaging\filter.o build\temp.win-amd64-2.7\Release\libimaging\flidecode.o build\temp.win-amd64-2.7\Release\libimaging\geometry.o build\temp.win-amd64-2.7\Release\libimaging\getbbox.o build\temp.win-amd64-2.7\Release\libimaging\gifdecode.o build\temp.win-amd64-2.7\Release\libimaging\gifencode.o build\temp.win-amd64-2.7\Release\libimaging\hexdecode.o build\temp.win-amd64-2.7\Release\libimaging\histo.o build\temp.win-amd64-2.7\Release\libimaging\jpegdecode.o build\temp.win-amd64-2.7\Release\libimaging\jpegencode.o build\temp.win-amd64-2.7\Release\libimaging\lzwdecode.o build\temp.win-amd64-2.7\Release\libimaging\matrix.o build\temp.win-amd64-2.7\Release\libimaging\modefilter.o build\temp.win-amd64-2.7\Release\libimaging\mspdecode.o build\temp.win-amd64-2.7\Release\libimaging\negative.o build\temp.win-amd64-2.7\Release\libimaging\offset.o build\temp.win-amd64-2.7\Release\libimaging\pack.o build\temp.win-amd64-2.7\Release\libimaging\packdecode.o build\temp.win-amd64-2.7\Release\libimaging\palette.o build\temp.win-amd64-2.7\Release\libimaging\paste.o build\temp.win-amd64-2.7\Release\libimaging\quant.o build\temp.win-amd64-2.7\Release\libimaging\quanthash.o build\temp.win-amd64-2.7\Release\libimaging\quantheap.o build\temp.win-amd64-2.7\Release\libimaging\pcddecode.o build\temp.win-amd64-2.7\Release\libimaging\pcxdecode.o build\temp.win-amd64-2.7\Release\libimaging\pcxencode.o build\temp.win-amd64-2.7\Release\libimaging\point.o build\temp.win-amd64-2.7\Release\libimaging\rankfilter.o build\temp.win-amd64-2.7\Release\libimaging\rawdecode.o build\temp.win-amd64-2.7\Release\libimaging\rawencode.o build\temp.win-amd64-2.7\Release\libimaging\storage.o build\temp.win-amd64-2.7\Release\libimaging\sunrledecode.o build\temp.win-amd64-2.7\Release\libimaging\tgarledecode.o build\temp.win-amd64-2.7\Release\libimaging\unpack.o build\temp.win-amd64-2.7\Release\libimaging\unpackycc.o build\temp.win-amd64-2.7\Release\libimaging\unsharpmask.o build\temp.win-amd64-2.7\Release\libimaging\xbmdecode.o build\temp.win-amd64-2.7\Release\libimaging\xbmencode.o build\temp.win-amd64-2.7\Release\libimaging\zipdecode.o build\temp.win-amd64-2.7\Release\libimaging\zipencode.o build\temp.win-amd64-2.7\Release\_imaging.def -LC:\Python27\lib -LC:\Python27\libs -LC:\Python27\PCbuild\amd64 -lkernel32 -luser32 -lgdi32 -lpython27 -lmsvcr90 -o build\lib.win-amd64-2.7\_imaging.pyd 

从本次通话的错误开始了,如:

build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x70): undefined reference to `__imp__PyFloat_Type' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x78): undefined reference to `__imp__PyFloat_Type' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x85): undefined reference to `__imp__PyType_IsSubtype' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0xc9): undefined reference to `__imp__PyFloat_Type' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0xd1): undefined reference to `__imp__PyFloat_Type' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0xde): undefined reference to `__imp__PyType_IsSubtype' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x113): undefined reference to `__imp__PyExc_TypeError' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x11e): undefined reference to `__imp__PyErr_SetString' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x132): undefined reference to `__imp__PyExc_TypeError' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x13d): undefined reference to `__imp__PyErr_SetString' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x194): undefined reference to `__imp__PyInt_AsLong' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x1a3): undefined reference to `__imp__PyErr_Occurred' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x23e): undefined reference to `__imp__PyArg_ParseTuple' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x285): undefined reference to `__imp__PyArg_ParseTuple' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x316): undefined reference to `__imp__PyInt_AsLong' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x325): undefined reference to `__imp__PyErr_Occurred' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x341): undefined reference to `__imp__PyFloat_AsDouble' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x35f): undefined reference to `__imp__PyErr_Occurred' 
build\temp.win-amd64-2.7\Release\_imaging.o:_imaging.c:(.text+0x393): undefined reference to `__imp__PyInt_AsLong' 

我认为这些奇怪的不确定的东西是Python的C API的一部分。那么,如果gcc调用包含-lpython27,为什么我会得到这些错误呢?

+0

什么操作系统您使用:

您可以用安装PIL? Windows中有这方面的已知问题。 – jdotjdot

+0

对不起,添加了我的操作系统。它的Windows 7 64位 – Mark

回答

0

作为Python包安装的一部分,在Windows中进行编译时存在很多已知问题。我建议你去过去为我工作的Unofficial Windows Binaries

easy_install http://www.lfd.uci.edu/~gohlke/pythonlibs/xos8d83j/PIL-fork-1.1.7.win-amd64-py2.7.exe 
+1

感谢您的解决方法,但我仍然想知道为什么编译器不成功。这不符合编译器的bug吗? – Mark

+0

也许是一个编译器错误,但它肯定更复杂,并且有很多移动部件可以使编译器在Windows上工作。请参阅[这里](http://stackoverflow.com/questions/10281102/gcc-compilation-error-from-python),并查找其他Windows gcc编译问题;你会发现很多关于它的报道。至于为什么它不起作用,我不完全知道。但我知道这是一个悬而未决的问题 - 我忘了是用Python还是用GCC或者Mingw。 – jdotjdot