编译cython模块在32位而不是在64位中工作[Windows]

2024-04-23 23:56:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个cython模块(使用numpy),它在32位中编译和工作,执行以下操作:

C:\Python27_x86\Scripts\cython.exe OrderC.pyx
C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27_x86\lib\site-packages\numpy\core\include -IC:\Python27_x86\include -IC:\Python27_x86\PC -c OrderC.c -o OrderC.o
C:\MinGW\bin\gcc.exe -shared -s OrderC.o -LC:\Python27_x86\libs -LC:\Python27_x86\PCbuild -lpython27 -lmsvcr90 -o OrderC.pyd

但当我试图用64位的等效代码编译时,它就不起作用了:

^{pr2}$

实际上,是第三条线路出了故障并给出了大量错误:

OrderC.o:OrderC.c:(.text+0x43f2c): undefined reference to `_imp__PyExc_TypeError'
...
OrderC.o:OrderC.c:(.text+0x603a9): undefined reference to `_imp__PyType_Ready'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: OrderC.o: bad reloc address 0x0 in section `.data'

collect2.exe:错误:ld返回1退出状态

是不是因为mingw只编译了32位?你能帮我一点忙吗?在

谢谢


Tags: textnumpybinincludelib错误exex86