作者Jyukai ( )
看板Fortran
標題[問題] 如何同時使用IMSL函式庫又使用自己編寫的副程式
時間Thu Apr 14 18:26:27 2011
請問各位先進,
小弟使用Compaq Visual Fortrand (Version 6.6)編寫fortran
檔案格式使用fixed format file
計算數值時有呼叫IMSL內的函式庫 (有在開頭寫 use IMSL 指令)
也有自己寫其他的function使用 (這部份沒問題,只要在開頭另外設external就好)
IMSL和很多自定function都可以正常使用
但想要自己同時在程式內也寫subroutine並呼叫時,會出現下列錯誤訊息
Main - 2011.04.07.obj : error LNK2001: unresolved external symbol
_SUBROUTINESOLVE@20
Debug/Main - 2011.04.07.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
目前不知道該怎麼辦,
其實我知道這個錯誤訊息的意思,因為一開始寫function如果沒有另外設external也
會有這錯誤出現,
但是現在是假使將自己寫的這個subroutine也設定成external,也無法執行,
而且因為整個程式有大量使用IMSL,所以也無法取消使用IMSL。
不知道是不是有另外的指令語法或是方法可以讓我同時使用IMSL又使用自定的subroutine?
而程式因為有幾千行似乎也不方便貼上來,需要麻煩各位高手指導了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.77.251.170
1F:推 Semisphere:1. 或許副程式名稱同名,換一個試試 04/15 08:40
3F:→ Jyukai:沒辦法耶,我換了其他的名字依然是同樣的錯誤 04/15 10:48
4F:→ Jyukai:另外感謝您提供的網站,我會參考使用看看 04/15 10:49
※ 編輯: Jyukai 來自: 119.77.251.170 (04/15 12:26)
5F:推 charlesdc:把你自己寫的sub包在module在use進來就沒問題了 04/15 17:38
6F:→ Jyukai:後來發現,似乎是自己在call的時候多打了subroutine指令 04/17 14:44
7F:→ Jyukai:不過也有嘗試樓上說的module,同樣也解決這問題 04/17 14:44