我想使用gfortran为Makefile生成合适的规则,并提供使用模块的源。
例如,如果在src1.f90
program prog
use module1
...
end program
和mod_mymods.f90
module module1
...
end module module1
我想生成一条类似
的行src1.f90: mod_mymods.f90
有可能吗?
this是否建议gfortran> = 4.5可以做到?
请注意,找到此类依赖项的唯一方法是解析所有f90文件,直到use module1
和module module1
之间存在匹配为止。
或者,可以维护源文件<->模块的索引,并使make
保持最新。
找到的替代品是:
https://www.geos.ed.ac.uk/homes/hcp/fmkmf
https://www.reddit.com/r/fortran/comments/8n3tr5/makefiles_with_modules_dependency_hierarchies_in/
https://www.systutorials.com/docs/linux/man/1-makedepf90/
https://simplyfortran.com/(但这是一个完整的IDE)
答案 0 :(得分:0)
似乎无法直接通过gfortran
生成这种依赖关系。
使用cmake
(例如)似乎可以自动解决这一问题,即使我没有检查生成的Makefile,也不知道cmake
如何解析{{1 }}和src1.f90
才能分辨出依赖关系。