Compilation Fortran编译输出到特定位置
我在include目录中有一个模块文件,我使用根目录中的Makefile编译它Compilation Fortran编译输出到特定位置,compilation,fortran,Compilation,Fortran,我在include目录中有一个模块文件,我使用根目录中的Makefile编译它 $(FC)-c包括/my_mod.F90 编译工作正常,只是我的模块显示在根目录而不是include目录中。如何指定输出文件的位置 我使用的是linux系统,我想同时支持gfortran和ifort。谢谢@albert和@francescalus,解决方案是: ifeq ($(FC),ifort) FORTFLAGS=-module else FORTFLAGS=-J endif m
$(FC)-c包括/my_mod.F90
编译工作正常,只是我的模块显示在根目录而不是include目录中。如何指定输出文件的位置
我使用的是linux系统,我想同时支持gfortran和ifort。谢谢@albert和@francescalus,解决方案是:
ifeq ($(FC),ifort)
FORTFLAGS=-module
else
FORTFLAGS=-J
endif
module:
$(FC) -c include/my_mod.F90 $(FORTFLAGS) include/ -o include/my_mod.o
这将取决于您的编译器,因此请提供进一步的细节。您想控制的是
.mod
文件,而不是.o
(同样,更改扩展名以适合您的系统)?例如,对于gfortran,您可以。可以使用一个选项指定将.mod
文件放在何处(如果我没有弄错的话:gfortran-J
,Intel-module
)。$(FC)-c include/my_mod.F90-module include/-o include/my_mod.o
非常有效!谢谢我假设我必须自己编写对gfortran/ifortran的支持(切换-J
和-module
)。