编译main.f90程序时提示无法打开模块文件'types.mod'的解决方法
错误原因
这个报错是因为编译main.f90时,gfortran找不到types模块编译后生成的types.mod文件。你只传入了main.f90作为编译输入,而它依赖的types、analytic_functions、euler_formulas三个模块对应的源文件没有参与编译,自然不会生成对应的.mod文件。
修复方法
方法1:一次性编译所有关联源文件
适合文件数量少的作业场景,直接把所有用到的源文件按依赖顺序加到gfortran命令里即可,被其他文件依赖的模块要放在前面:
gfortran types.f90 analytic_functions.f90 euler_formulas.f90 main.f90 -o hw.exe
执行后gfortran会按顺序编译:先生成types.mod、types.o,再依次编译后续模块,最后编译main.f90并链接所有目标文件生成可执行程序hw.exe,不会再报找不到模块的错误。
方法2:分步骤编译
适合后续需要频繁修改代码的场景,避免每次修改都全量编译:
- 先单独编译所有模块,
-c参数表示只编译生成目标文件和.mod文件,不生成最终可执行程序:
gfortran -c types.f90 gfortran -c analytic_functions.f90 gfortran -c euler_formulas.f90
- 再编译主程序并链接所有提前生成的目标文件:
gfortran main.f90 types.o analytic_functions.o euler_formulas.o -o hw.exe
注意事项
- 执行编译命令前,要确保命令行当前工作目录是所有.f90文件存放的文件夹,否则可以用
cd 你的文件夹路径切换 - 如果后续修改了某个模块的代码,需要重新执行对应模块的编译命令,再编译主程序,否则会因为.mod文件版本不匹配报错
内容的提问来源于stack exchange,提问作者Mei Win
相关产品推荐
相关产品推荐

