【发布时间】:2019-08-07 04:43:27
【问题描述】:
我想使用 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)
【问题讨论】:
-
如果你想走这条路,这是你的选择,答案应该保持在主题上,但我真的要注意现代构建系统不需要任何依赖列表,只是自动工作(cmake、scons、waf、FoBiS、...)。
-
USE语句是依赖,当编译器返回找不到.mod的错误时,makefile就中止了。
-
@VladimirF - 谢谢。您知道发布的两个问题吗?
-
不,我讨厌 Makefiles,因为我花了太多时间试图让它们工作。
标签: makefile fortran dependencies gfortran