我正在使用包含许多不同功能的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
我期望编译器在指定的目录中找到所需的模块。但不幸的是,我收到一条错误消息,说明有实际包含在子模块中的函数存在未定义的引用。
我在这里做错了什么?
谢谢你的帮助!
谢谢您的回复!然而,当我将程序与库链接时,我试图绕过提及所有对象的需要。 – remek 2013-05-01 14:54:31