我在使用gfortan编译器编译fortran程序时遇到问题。 主程序位于main.f.所以,我在控制台写道:
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.
我认为这是因为函数gridw
,gridz
等位于其他* .f文件中。但我不知道如何将这些全部联系在一起。
另外,我尝试使用Compaq Visual Fortran Complier,但它没有帮助我。
答案 0 :(得分:2)
用于编译和链接多个源文件到一个可执行文件的基本命令是
gfortran -o executable source1.f source2.f source3.f
注意您指定的任何.f
文件都在其所依赖的任何其他源文件的右侧。所有这些以及更多内容都在编译器的文档中有详细介绍。
答案 1 :(得分: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