为了解决一些积分问题,我下载了 QUADPACK for fortran 并将所有源文件编译为目标文件。现在,当我想从 QUADPACK 调用子例程时,我需要手动链接它们或使用生成文件/脚本,这样就可以了。但是,由于我使用 QUADPACK 的多个例程和一系列不同的程序,如果我能让 gfortran 自动查找 .o 文件,我的生活会轻松很多。假设我有一个包含所有 .o 文件的目录,我想将其添加为 gfortran 查找目标文件的标准路径。这样我就可以在我的程序中调用一个子程序并编译它,而不必找出我需要的 witch .o 文件并手动链接它们。
我知道 -l 标志将解决问题,但我想知道是否有更简单/懒惰的方法来做到这一点。我在想也许我可以对编译器进行一些更改并重新制作它,但这并不是我真正想要开始搞砸的事情。
顺便说一句,我正在使用 Ubuntu。希望你们理解我的问题,并且有一个简单的解决方案。
PS:这是我现在这样做的方式,为了调用一个例程。
#!/bin/sh
gfortran -c int.f95
gfortran -o int int.o qagie.o qelg.o qk15i.o qpsrt.o r1mach.o xermsg.o j4save.o
xerprn.o xersve.o xerhlt.o xercnt.o fdump.o xgetua.o i1mach.o
./int
如您所见,它只是一个用于编译和运行 int.f95 的简单 shell 脚本