我已经编写了一些fortran子例程。我将子例程保存在名为subroutines
的Desktop文件夹中。当我编译一个fortran程序时,说main.f90
(位于与subroutines
不同的文件夹中),该程序使用sub1.f90
文件夹的子例程(例如sub2.f90
,subroutines
),我需要将每个子例程复制到main.f90
文件夹中,然后像这样进行编译:gfortran -o main main.f90 sub1.f90 sub2.f90
根据需要输出可执行文件。
我的问题是:gfortran中是否有任何编译器选项可以包含subroutine
文件夹中的文件,而不必将每个子例程复制到main.f90
文件夹中?
我尝试了以下两种选择:gfortran -L/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90
gfortran -I/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90
这两个编译器选项均返回错误:gfortran: No such file or directory
我的电脑上唯一可用的fortran编译器是gfortran(没有ifort)。
最佳答案
您可以简单地将完整路径放入子例程文件。因此,您可以将编译内容扩展为
gfortran -o main main.f90 subroutines/sub1.f90 subroutines/sub2.f90
或执行此 call 的明智方法是使用扩展
gfortran -o main main.f90 subroutines/{sub1,sub2}.f90
大括号将扩展为与我显示的第一个并发症相同。
关于compiler-errors - gfortran包含带有子例程的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753060/