2010-04-23 72 views
0

我有一個FORTRAN 95程序需要對LAPACK庫進行一些調用。我最近發現Cygwin是因爲它可以安裝LAPACK作爲一個額外的選項。如何:從Cygwin的FORTRAN 95引用LAPACK庫

那麼,LAPACK作爲「cyglap​​ack.dll」存在於/ lib/lapack /目錄中。在Fortran編程中只有非常非正式的培訓,我不知道如何引用.dll庫而不是.mod模塊。

任何建議或指導文章回答我的問題非常感謝! (P.S.我沒有搜索第一..我不認爲我知道得到一個有用的文章的正確條款。)

回答

0

概念上調用Lapack應該像調用任何其他DLL一樣簡單。你只需要弄清楚什麼鏈接標誌和語句包含在你的構建語句中。

從Fortran中,您可能會聲明您要使用的Lapack的函數爲EXTERNAL。這告訴編譯器不要在源代碼或mod文件中尋找函數的定義,但是定義將在鏈接時提供。這是樂趣開始的地方,因爲您試圖確保您的調用的簽名與DLL期望的簽名匹配。

如果您提供更多信息,我可能會提供更多幫助。你的Windows開發環境是什麼?你在用什麼Fortran編譯器?你使用什麼編譯和鏈接工具?你目前的鏈接聲明是什麼樣的?

0

搜索詞:dynamic linking fortran

看看這個頁面:

http://sources.redhat.com/ml/binutils/2001-12/msg00471.html

它提到使用dlltool產生從.dll文件.a文件。據推測,你應該能夠以正常的方式鏈接到(通常編譯命令中的lib開關)。

否則,考慮運行一個Linux Live CD,以避免第一個問題!如果您是學生或學者,請查看是否可以找到安裝了fortran的服務器(IT人員通常非常有幫助),以便您可以編譯和運行程序。