You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Makefile编译Fortran程序:模块依赖问题排查

Fortran编译Makefile问题根源分析

1. 依赖关系未正确定义

Makefile没有明确指定AltitudeCalculator.f90的编译必须依赖COESA.f90的编译完成。这会导致Make可能先尝试编译主程序,此时coesa_module.mod还未生成,直接抛出找不到模块的错误;即使后续模块生成,也需要二次编译才能触发主程序的重新构建。

2. 模块文件复制逻辑错误

你使用的@cp $@ .命令中,$@仅指代当前规则的目标文件(通常是.o目标文件),而Fortran编译生成的.mod模块文件并不在$@的范围内。所以编译COESA.f90后,只会复制.o文件到当前目录,coesa_module.mod仍留在build目录,主程序编译时自然找不到。

3. 编译器模块搜索路径未配置

即使build目录下已经生成了coesa_module.mod,但你的编译命令没有通过-I选项指定编译器到build目录搜索模块文件。编译器默认只会在当前工作目录和系统默认路径查找.mod文件,因此无法识别build中的模块,必须手动复制到当前目录才能被找到。

内容的提问来源于stack exchange,提问作者Bean_from_accounts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 07:00:00