我在AIX上安裝了gcc
和gfortran
,它們工作正常。除此之外,我將它們用於一些可通過頭文件訪問的庫(C中的.h
)。非常相同的庫功能的模塊(.mod
在FORTRAN)使用,但你知道它們的使用是可選的:如果我從我的Fortran源代碼中註釋掉從c頭創建mod文件
use mylib
implicit none
,一切工作正常。問題是,我不想註釋掉implicit none
,所以我必須保持use mylib
太多,否則我會得到一堆
Error: Symbol 'foo' at (1) has no IMPLICIT type
錯誤。而且,正如你知道的,.mod文件是編譯器相關的,所以我不能用那些我有,否則gfortran會吐:
Fatal Error: File 'mylib.mod' opened at (1) is not a GFORTRAN module file
理論上我可以重新編譯所有與gfortran庫,但最有可能它會由於各種原因失敗(如果不是這樣,它仍然是一項艱鉅的任務)。
所以我想知道是否有一種方法來預編譯.mod
模塊中的.h
標題,只提供所需的接口信息。不幸的是,我無法找到關於此的任何信息。
你知道這些庫是用C還是fortran編寫的嗎?您可以通過檢查C頭文件來解決這個問題。我的猜測是這些庫將用C語言編寫,因爲fortran庫往往不兼容不同的供應商,並且你暗示你的代碼鏈接沒有問題。 – DaveP 2010-11-15 07:31:07