簡體   English   中英

將gfortran鏈接到LAPACK和BLAS時出錯

[英]Error in linking gfortran to LAPACK and BLAS

我在Ubuntu中從Synaptic包管理器安裝了LAPACK和BLAS。

whereis libblas
libblas: /usr/lib/libblas.so /usr/lib/libblas.a /usr/lib/libblas

whereis liblapack
liblapack: /usr/lib/liblapack.a /usr/lib/liblapack.so

當我嘗試使用gfortran編譯randomsys1示例時 ,我收到以下錯誤消息。

gfortran randomsys1.f90 -L/usr/lib/lapack -llapack -L/usr/lib/libblas -lblas
/tmp/cclwtifh.o: In function `MAIN__':
randomsys1.f90:(.text+0x12): undefined reference to `init_random_seed_'
collect2: error: ld returned 1 exit status

要么

gfortran randomsys1.f90 -llapack -lblas
/tmp/ccB1isEC.o: In function `MAIN__':
randomsys1.f90:(.text+0x12): undefined reference to `init_random_seed_'
collect2: error: ld returned 1 exit status

根據我的理解,這是建議的方法來鏈接gfortranlapackblas (請參閱gfortran LAPACK“未定義的引用”錯誤 )。 提前感謝指出使用gfortran編譯fortran代碼的正確方法。

試一試

gfortran randomsys1.f90 -L/usr/lib -llapack -L/usr/lib -lblas

我覺得你走得太遠了一個目錄

我使用LAPACK eigensolver編寫了一個程序,這是我在自己的計算機上成功編譯它的方法。 它用於計算彈簧質量系統的模式。

gfortran eigen.f90 -L/usr/local/lib -lblas -L/usr/local/lib -llapack

這也適用於我的電腦

gfortran eigen.f90 -lblas -llapack

我只是嘗試了兩個來驗證。

PS,既然您知道如何編譯,我認為您需要在程序中使用子程序init_random_seed(在“包含”之后但在“結束程序”之前)。 這個來自谷歌。 不知道這是否是你需要的,你的教授應該能夠在這里正確引導你。

! Initialize the random number generator using current time,
! so a new sequence of random numbers is generated each 
! execution time.

! Taken from http://gcc.gnu.org/onlinedocs/gfortran/RANDOM_005fSEED.html

    SUBROUTINE init_random_seed()
        INTEGER :: i, n, clock
        INTEGER, DIMENSION(:), ALLOCATABLE :: seed

        CALL RANDOM_SEED(size = n)
        ALLOCATE(seed(n))

        CALL SYSTEM_CLOCK(COUNT=clock)

        seed = clock + 37 * (/ (i - 1, i = 1, n) /)
        CALL RANDOM_SEED(PUT = seed)

        print *, "Using random seed = ", seed
        print *, " "

        DEALLOCATE(seed)
    END SUBROUTINE

我有同樣的問題。 我按照上面的建議工作了。 這是我的工作示例批處理文件(必須在cmd窗口中執行):

gfortran -c for\kurs_evd.f90
gfortran -o kurs_evd.exe kurs_evd.o charint.o -L/usr/lib -llapack -L/usr/lib -lblas
kurs_evd.exe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM