我有一個使用模塊的Fortran程序,即它在編譯期間創建了.mod
文件。 我還寫了一個Makefile
,它使用所有來自src/
的.f90
文件將所有創建的.o
文件和obj/
以及當前文件夾中的二進制文件全部正常工作。Makefile:避免爲新文件夾編譯Fortran模塊
我現在在不同的計算不同的文件夾重新編譯我的程序(比如calc1/
),即我複製到Makefile
calc1/
,類型make all
在calc1/
和所有它是連接的,因爲對象的文件已經存在。但是,如果程序包含任何模塊,則編譯器需要相應的.mod
文件存在於calc1/
中。到現在爲止,我重新編譯了所有內容(make clean all
),但隨着程序的不斷增加,這需要花費太多時間!
我想出的一個可能的解決方案是爲二進制文件提供一個特定的文件夾(bin/
)。但這不是一個可行的選擇,因爲我在隊列中有工作,顯然需要一個穩定的二進制文件,而我同時也嘗試新功能。
因此,我正在尋找一種解決方案,以某種方式處理類似於.o
文件的文件.mod
,例如,將它們放入obj/
。
我知道做,但我不不知道Fortran(哈!)。編譯器是否在當前目錄中建立'mod'文件?他們是否有可預測的名字(例如'foo.f90' =>'foo.mod')?你可以用編譯器的參數來控制它們的名字嗎? – Beta 2012-04-12 13:14:47
右,'mod'文件在當前目錄中創建並按文件中給出的名稱命名,例如'foo.f90'包含'module bar',那麼該文件將被命名爲'bar.mod'。這在編譯期間不能被控制,因爲在其他文件中使用該名稱,即,在'main.f90'中我寫'use bar'。 – Jost 2012-04-12 13:25:04