繁体   English   中英

f2py错误:未定义符号

[英]f2py error: undefined symbol

我需要用f2py包装一个简单的fortran90代码。 fortran模块“ test.f90”是

module util

contains

FUNCTION gasdev(idum)
implicit none
INTEGER(kind=4), intent(inout) :: idum
REAL(kind=8) :: gasdev, ran2
print*,idum
gasdev = ran2(idum)
return
END FUNCTION

FUNCTION ran2(idum)
implicit none
INTEGER(kind=4), intent(inout) :: idum
REAL(kind=8) :: ran2
print*,idum
ran2=2.D0
return
END FUNCTION
end module util

然后用

f2py  -m test -c test.f90

但是当我在python中导入它时

In [2]: import test

它提示我错误

ImportError: ./test.so: undefined symbol: ran2_

关于如何解决它的任何想法? 谢谢。

在函数gasdev中,您将ran2声明为外部函数。 由于您随后未链接任何此类函数,因此模块导入将失败。

而是在gasdev中删除ran2的声明,在这种情况下,ran2调用使用模块中ran2函数的显式接口,并且一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM