在windows32 -bit上编译scipy: libf77blasa链接错误。

时间:2022-11-21 04:08:19

Has anyone tried compiling SciPy 0.7.1 on Windows using numpy-1.3.0 that was built with the pre-built ATLAS libraries (atlas3.6.0_WinNT_P4SSE2.zip) linked in the installation document.

有人试过在Windows上使用numpy-1.3.0编写SciPy 0.7.1,它是在安装文档中与预构建的ATLAS库(atlas3.6.0_WinNT_P4SSE2.zip)一起构建的。

I get the following linker error, and have no ideas as to how to fix this issue.

我得到了以下链接错误,并没有关于如何解决这个问题的想法。

$ python setup.py config --compiler=mingw32 build --compiler=mingw32 install --root=i
[...]
creating build\temp.win32-2.6\Release
creating build\temp.win32-2.6\Release\scipy
creating build\temp.win32-2.6\Release\scipy\integrate
compile options: '-DNO_ATLAS_INFO=2 -I"C:\Documents and Settings\apy\Application Data\Python\Python26\site-packages\numpy\core\inc
lude" -IC:\Python26\include -IC:\Python26\PC -c'
gcc -mno-cygwin -O2 -Wall -Wstrict-prototypes -DNO_ATLAS_INFO=2 -I"C:\Documents and Settings\apy\Application Data\Python\Python26\
site-packages\numpy\core\include" -IC:\Python26\include -IC:\Python26\PC -c scipy\integrate\_odepackmo
dule.c -o build\temp.win32-2.6\Release\scipy\integrate\_odepackmodule.o
C:\MinGW\bin\g77.exe -g -Wall -mno-cygwin -g -Wall -mno-cygwin -shared build\temp.win32-2.6\Release\scipy\integrate\_odepackmodule
.o -LC:\atlas3.6.0_WinNT_P4SSE2 -LC:\MinGW\lib -LC:\MinGW\lib\gcc\mingw32\3.4.5 -LC:\Python26\libs -LC:\Act
ivePython32Python26\PCbuild -Lbuild\temp.win32-2.6 -lodepack -llinpack_lite -lmach -latlas -lcblas -lf77blas -llapack -lpython26 -
lg2c -o build\lib.win32-2.6\scipy\integrate\_odepack.pyd
C:\atlas3.6.0_WinNT_P4SSE2/libf77blas.a(ATL_F77wrap_daxpy.o):ATL_F77wrap_axpy.c:(.text+0x3c): undefined reference to `ATL
_daxpy'
C:\atlas3.6.0_WinNT_P4SSE2/libf77blas.a(ATL_F77wrap_dscal.o):ATL_F77wrap_scal.c:(.text+0x26): undefined reference to `ATL
_dscal'
C:\atlas3.6.0_WinNT_P4SSE2/libf77blas.a(ATL_F77wrap_dcopy.o):ATL_F77wrap_copy.c:(.text+0x3d): undefined reference to `ATL
_dcopy'
C:\atlas3.6.0_WinNT_P4SSE2/libf77blas.a(ATL_F77wrap_idamax.o):ATL_F77wrap_amax.c:(.text+0x1e): undefined reference to `AT
L_idamax'
C:\atlas3.6.0_WinNT_P4SSE2/libf77blas.a(ATL_F77wrap_ddot.o):ATL_F77wrap_dot.c:(.text+0x36): undefined reference to `ATL_d
dot'
collect2: ld returned 1 exit status
error: Command "C:\MinGW\bin\g77.exe -g -Wall -mno-cygwin -g -Wall -mno-cygwin -shared build\temp.win32-2.6\Release\scipy\integrat
e\_odepackmodule.o -LC:\atlas3.6.0_WinNT_P4SSE2 -LC:\MinGW\lib -LC:\MinGW\lib\gcc\mingw32\3.4.5 -LC:\Python
26\libs -LC:\Python26\PCbuild -Lbuild\temp.win32-2.6 -lodepack -llinpack_lite -lmach -latlas -lcblas -lf77blas -llap
ack -lpython26 -lg2c -o build\lib.win32-2.6\scipy\integrate\_odepack.pyd" failed with exit status 1

Does anyone know what could have gone wrong here? Looking for ATL_daxpy, for example, in libf77blas.a resulted in:

有人知道这里可能出了什么问题吗?例如,在libf77blas中寻找ATL_daxpy。导致:

$ strings libf77blas.a  | grep -i daxpy
_daxpy_
_atl_f77wrap_daxpy_
ATL_F77wrap_daxpy.o/
daxpy.o/        1081731936  1003  513   100755  420       `
daxpy.f
_daxpy_
_atl_f77wrap_daxpy_
_atl_f77wrap_daxpy_
_ATL_daxpy

There is _ATL_daxpy, but no ATL_daxpy.

有_ATL_daxpy,但没有ATL_daxpy。

1 个解决方案

#1


1  

Our installation instructions are awfully out of date. First, you should use the binary installer unless you have a very good reason not to on windows. Here you are linking against an ATLAS which is different than the one numpy itself was built on, which is unlikely to work well (numpy and scipy would use different versions of atlas).

我们的安装说明已经过时了。首先,您应该使用二进制安装程序,除非您有很好的理由不使用windows。在这里,您正在链接与一个与numpy本身不同的地图集,这是不太可能有效的(numpy和scipy将使用不同版本的ATLAS)。

Assuming you have a good reason to build it by yourself, you can get the atlas binaries we use in the binary installers in the vendor directory of our repo.

假设您有足够的理由自己构建它,您可以得到我们在repo的供应商目录中的二进制安装程序中使用的atlas二进制文件。

#1


1  

Our installation instructions are awfully out of date. First, you should use the binary installer unless you have a very good reason not to on windows. Here you are linking against an ATLAS which is different than the one numpy itself was built on, which is unlikely to work well (numpy and scipy would use different versions of atlas).

我们的安装说明已经过时了。首先,您应该使用二进制安装程序,除非您有很好的理由不使用windows。在这里,您正在链接与一个与numpy本身不同的地图集,这是不太可能有效的(numpy和scipy将使用不同版本的ATLAS)。

Assuming you have a good reason to build it by yourself, you can get the atlas binaries we use in the binary installers in the vendor directory of our repo.

假设您有足够的理由自己构建它,您可以得到我们在repo的供应商目录中的二进制安装程序中使用的atlas二进制文件。