makefile - 为什么当我使用 Makefile 时我的 Makefile 不生成 *.mod
问题描述
我正在尝试制作简单的 Makefile 来构建我的程序。
我的Makefile
文件如下:
main.f
是主要源代码,test1.f
是模块。
default: test.out
test.out : main.o test1.o
gfortran main.o test1.o -o test.out
test1.o: test1.f
gfortran -c test1.f
main.o: main.f
gfortran -c main.f
clean :
rm -f ./*.out
rm -f ./*.o
rm -f ./*.mod
当我make
在终端中命令时,它给了我一个错误
Fatal Error: Cannot open module file 'test1.mod' for reading at (1): No such file or directory
(1) 显示错误发生的位置。它在我定义使用模块 test1 的主源文件行中,即use test1
如果我命令gfortran -c test1.f
然后命令make
它构建可执行文件没有任何问题。
我的问题是,即使我在模块的 Makefile 中编写了用于制作目标文件的行,为什么它不起作用?
解决方案
您的 Makefile 依赖项是错误的。您需要在 main.f90 之前编译 test1.f90。所以test.out : main.o test1.o
改为test.out: test1.o main.o
.
推荐阅读
- python - 如何存储在循环中找到的值?
- html - 第 n 列元素之间的边框折叠
- python - Scrapy - Python 无法在 Mac OS 上将数据插入到 mySQL Workbench:Deferred 中的未处理错误
- android - 如何在listview android中加粗特定单词
- verilog - 如果我没有在 Verilog/SystemVerilog 中为未知状态 x 指定大小和基本格式会怎样?
- google-analytics - bigquery 中的 GA 未显示正确结果
- javascript - 原语上的 isPrototypeOf() 函数
- c# - 在 WEB API 应用程序中,当 Connect with Excel 出现错误时,我只是创建了与 excel 的连接,当尝试打开它时出现错误
- javascript - HTML 表单输入标签未捕获 iOS (iPhone / iPad) 上的所有文本字符
- python - Python 3 中的元素未从列表中删除