2
我需要用f2py包裝一個簡單的fortran90代碼。該FORTRAN模塊 「test.f90」 是f2py錯誤:未定義的符號
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
包,但是當我將其導入蟒蛇
In [2]: import test
它促使我與錯誤說
ImportError: ./test.so: undefined symbol: ran2_
任何有關如何 要解決這個問題?謝謝。
謝謝。令人沮喪的是,Fortran編譯器本身的代碼運行良好,並且由f2py吐出的錯誤對我來說不是很明顯...... – nye17
當然,編譯會正常工作。但是,鏈接可能是另一個問題,除非你的代碼庫中有一個外部過程ran2。 – janneb
我曾經認爲我必須使用'external'關鍵字來指定一個外部函數,當我聲明它的時候從來沒有意識到它已經是這樣了...... – nye17