いくつかの積分を解くために、FORTRAN 用の QUADPACK をダウンロードし、すべてのソース ファイルをオブジェクト ファイルにコンパイルしました。QUADPACK からサブルーチンを呼び出したい場合は、それらを手動でリンクするか、メイクファイル/スクリプトを使用する必要がありますが、これは問題なく機能します。しかし、私は QUADPACK の複数のルーチンをさまざまなプログラムに使用しているので、gfortran に .o ファイルを自動的に検索させることができれば、私の生活はずっと楽になります。すべての .o ファイルが含まれているディレクトリがあるとします。これを gfortran がオブジェクト ファイルを探すための標準パスとして追加したいと考えています。プログラムでサブルーチンを呼び出してコンパイルするだけで、必要な witch .o ファイルを見つけて手動でリンクする必要がなくなります。
-l フラグが問題を解決することは理解していますが、それを行うためのより簡単で怠惰な方法があるかどうかを知りたいです。コンパイラに変更を加えて作り直すことができるのではないかと考えていましたが、実際にはそれをいじりたいわけではありません。
ちなみにUbuntuを使っています。皆さんが私の問題を理解し、簡単な解決策があることを願っています。
PS: これは、1 つのルーチンを呼び出すために、現在私が行っている方法です。
#!/bin/sh
gfortran -c int.f95
gfortran -o int int.o qagie.o qelg.o qk15i.o qpsrt.o r1mach.o xermsg.o j4save.o
xerprn.o xersve.o xerhlt.o xercnt.o fdump.o xgetua.o i1mach.o
./int
ご覧のとおり、int.f95 をコンパイルして実行する単純なシェル スクリプトです。