我正在开发一个包含许多不同功能的 Fortran 库。为了更容易地开发和维护它,我把这个库分成了几个模块(例如,、、、part1.f90
)part2.f90
和part3.f90
一个mylib.f90
使用所有这些单独模块的主模块:
module mylib
use part1
use part2
use part3
implicit none
end module mylib
然后的想法是在我的程序中使用这个主模块use mylib
。但是,我在编译和链接这些模块时遇到了麻烦。
模块都包含并编译在一个目录/mylib/src/
中,因此也包含相应的*.o
和*.mod
文件。当我在不同的目录中编译我的程序时,使用:
gfortran -I/mylib/src myprog.f90 -o myprog
我希望编译器能够在指定目录中找到所需的模块。但不幸的是,我收到一条错误消息,指出子模块中实际包含对函数的未定义引用。
我在这里做错了什么?
谢谢您的帮助!