gpt4 book ai didi

makefile - 如何使用模块为 Fortran 编写 makefile?

转载 作者:行者123 更新时间:2023-12-01 04:56:20 25 4
gpt4 key购买 nike

gg=mpif90
DEPS=matrix.mod
OBJ= main.o sub1.o

main.out: $(OBJ)
$(gg) -o $@ $^
%.mod:%.90 %.o
$(gg) -c -o $@ $^

%.o:%.f90 $(DEPS)
$(gg) -c -o $@ $^

.PHONY: clean

clean:
-rm -f *.o *~

看。主程序是 main.f90 . sub1.f90将被 main.f90 调用.两者都将使用 matrix.f90这是一个模块。我知道我可以不用 compile then link直接生成可执行程序.但我不喜欢这种方式。

最佳答案

mod文件只是编译 %.o 的副产品, 你不应该使用 -o $@在这里,将其更改为

%.mod: %.90
$(gg) -c $^

这适用于大多数情况,但不是全部。那是因为 mod的名字file 只依赖于模块名,与源文件名无关。所以最安全的方法是明确指定依赖关系。
matrix.mod: matrix.f90
$(gg) -c matrix.f90

有时一个 f90源文件可以包含两个或多个模块。
matrix33.mod matrix99.mod: matrix.f90
$(gg) -c matrix.f90

关于makefile - 如何使用模块为 Fortran 编写 makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com