多くの異なる関数を含む 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
コンパイラーが、指定されたディレクトリーで必要なモジュールを見つけることを期待しています。しかし残念ながら、実際にはサブモジュールに含まれている関数への未定義の参照があるというエラー メッセージが表示されます。
ここで何が間違っていますか?
ご協力ありがとうございました!