2012-09-28 156 views
0

我用gfortan編譯器編譯fortran程序時遇到問題。 主程序位於main.f.所以,我在控制檯寫:fortran鏈接錯誤

gfortran D:\test\test.f 

但它顯示了我很多的錯誤,如:

C:\Users\Efds~1\AppData\Local\Temp\cchFNGgc.o:test.f:<.test+0x3a>: undefined reference to '_gridw_' 
C:\Users\Efds~1\AppData\Local\Temp\cchFNGgc.o:test.f:<.test+0x3a>: undefined reference to '_gridz_' 
etc. 

我想這是因爲功能gridwgridz等位於其他* .F文件。但我不知道如何將這些聯繫在一起。

此外,我試圖使用康柏Visual Fortran編譯器,但它並沒有幫助我。

回答

2

編譯和連接多個源文件爲一個可執行的基本命令是

gfortran -o executable source1.f source2.f source3.f 

照顧您指定的任何.f文件被命名它所依賴任何其他的源文件的權利。所有這些以及更多內容在編譯器的文檔中都有很好的介紹。

+0

謝謝,它確實有幫助。 gfortran -o test.exe * .f –

0

如上所述,您可以使用相同的命令編譯多個文件,但這很不尋常。

您可能希望先編譯成目標文件(名爲「.o」):

gfortran -c gridw.f 
gfortran -c gridz.f 

,然後編譯程序

gfortran test.f grodw.o gridz.o 

如果你有許多要鏈接的文件,它可能是有趣建庫:

ar cru mylib.a gridw.o gridz.o 
gfortran test.f mylib.a 

如果你的名字你的庫libSOMETHING.a,可以簡單的寫

gfortran test.f -lSOMETHING