Ошибка f2py или отсутствующая библиотека?
Я использую f2py
реализовать некоторые фортран 77 процедур. В частности, я хочу реализовать функцию масштабирования по столбцам для двумерного массива.
SUBROUTINE AUTOSCALE(E,NR,NC,EA,N,M,MX,SX,SSX)
INTEGER NR,NC,N,M,I,J
REAL*8 E(NR,NC),EA(N,M),MX(M),SX(M),SSX(M)
DO 1 I=1,NC
MX(I)=0D0
SX(I)=0D0
1 SSX(I)=0D0
DO 3 I=1,NR
DO 2 J=1,NC
MX(J)=MX(J)+E(I,J)
2 SX(J)=SX(J)+E(I,J)**2
3 CONTINUE
DO 4 J=1,NC
MX(J)=MX(J)/NR
SX(J)=(SX(J)-NR*MX(J)**2)/(NR-1)
SX(J)=DSQRT(SX(J))
4 CONTINUE
DO 6 I=1,NR
DO 5 J=1,NC
EA(I,J)=E(I,J)-MX(J)
EA(I,J)=EA(I,J)/SX(J)
SSX(J)=SSX(J)+E(I,J)**2
5 CONTINUE
6 CONTINUE
RETURN
END
Процедура правильно переведена на python, только если я прокомментирую строку с DSQRT
вызов. Если я заменю его эквивалентными функциями, такими как SQRT
, **(0.5)
, **(1./2.)
Я всегда получаю странную ошибку ссылки. Подробности смотрите ниже.
Найден исполняемый файл C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.exe mingw32.lib(lib32_libmingw32_a-pesect.o): ошибка LNK2005: ValidateImageBase уже определено в MSVCRT.lib(pesect.obj) mingw32.lib(lib32_libmingw32_a-pesect.o): ошибка LNK2005: __FindPESection уже определено в MSVCRT.lib(pesect.obj) mingw32.lib(lib32_libmingw32_a-pesect.o): ошибка LNK2005: определен в качестве другого объекта.) Создание библиотеки C:\Users\PolGia0\AppData\Local\Temp\tmpvzoar0ou\Release\Users\PolGia0\AppData\Local\Temp\tmpvzoar0ou\src.win32-3.4\foo.lib и объекта C:\Users\PolGia0\AppData\Local\Temp\tmpvzoar0ou\Release\Users\PolGia0\AppData\Local\Temp\tmpvzoar0ou\src.win32-3.4\foo.exp mingw32.lib(lib32_libmingw32_a-pesect.o): ошибка LNK2019: неразрешенный внешний символ __image в функции __FindPESectionByName .\foo.pyd: фатальная ошибка LNK1120: 1 неразрешенный внешний код
Я не понимаю это Может быть, что-то не так в настройке моей системы? Какие-либо предложения? Спасибо PS В случае, если это поможет, я использую Anaconda 2.3.0 в 32-разрядной версии на 64-разрядном ПК с Windows 7.