gpt4 book ai didi

module - 指定 gfortran 应在其中查找模块的目录

转载 作者:行者123 更新时间:2023-12-03 13:25:54 36 4
gpt4 key购买 nike

我目前基于模块编译程序(如主程序 foo 依赖于模块 bar )如下:

gfortran -c bar.f90
gfortran -o foo.exe foo.f90 bar.o

这在 foo.f90 时工作正常和 bar.f90在同一个目录中。如何指定 gfortran 应在其中查找 bar.o 的目录当我调用 use barfoo.f90 ? (即我不想指定编译器应该链接 bar.o,我只想让它去找到它。)

最佳答案

你可以用 -I 告诉 gfortran 你的模块文件(.mod 文件)在哪里。编译器标志。此外,您可以使用 -J 告诉编译器将已编译模块放在何处。编译器标志。请参阅 gfortran man page 中的“目录搜索选项”部分。 .

我使用它们将我的对象(.o 文件)和我的模块文件放在同一个目录中,但与我的所有源文件放在不同的目录中,所以我不会弄乱我的源目录。例如,

SRC = /path/to/project/src
OBJ = /path/to/project/obj
BIN = /path/to/project/bin

gfortran -J$(OBJ) -c $(SRC)/bar.f90 -o $(OBJ)/bar.o
gfortran -I$(OBJ) -c $(SRC)/foo.f90 -o $(OBJ)/foo.o
gfortran -o $(BIN)/foo.exe $(OBJ)/foo.o $(OBJ)/bar.o

虽然上面看起来在命令行上输入需要付出很多努力,但我通常在我的 makefile 中使用这个想法。

仅供引用,等效的 Intel fortran 编译器标志为 -I -module .本质上,ifort 替换了 -J带有 -module 的选项.注意 module 后面有一个空格,但 J 后面没有。

关于module - 指定 gfortran 应在其中查找模块的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855896/

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