XL Fortran プログラムのリンク

デフォルト時には、XL Fortran プログラムのリンクで特別に行うべきことは何もありません。 コンパイラー呼び出しコマンドは、自動的にリンカーを呼び出し、実行可能出力ファイルを作成します。 たとえば、次のコマンドを実行します。

xlf95 file1.f file2.o file3.f

これにより、オブジェクト・ファイル file1.o および file3.o がコンパイルされて作成され、次にすべての オブジェクト・ファイルがリンカーへサブミットされ、1 つの実行可能ファイルが作成されます。

リンクが終了したら、XL Fortran プログラムの実行の指示に従ってプログラムを実行してください。

別個のステップのコンパイルとリンク

後でリンクできるオブジェクト・ファイルを作成するには、-c オプションを使用します。

xlf95 -c file1.f               # Produce one object file (file1.o)
xlf95 -c file2.f file3.f       # Or multiple object files (file1.o, file3.o)
xlf95 file1.o file2.o file3.o  # Link object files with appropriate libraries

コンパイラー呼び出しコマンドでリンカーを実行するのが最善な場合もあります。 このコマンドは、余分な ld オプションおよびライブラリー名をリンカーに自動的に渡すからです。

ld コマンドへのオプションの引き渡し

XL Fortran デフォルトの一部ではない ld オプションでリンクしなければならない場合は、 それらのオプションをコンパイラー・コマンド行に入れることができます。

   xlf95 -Wl,<options...> file.f # xlf95 passes all these options to ld

コンパイラーは、-q オプション以外の認識されないオプションを ld コマンドに渡します。

動的および静的リンク

XL Fortran を使用すれば、ご使用のプログラムは、動的リンク と 静的リンクの両方のためのオペレーティング・システム機能の利点を利用できるようになります。

リンク中の命名競合の回避

実行時サブプログラムと同じ名前を持つ外部サブルーチン、外部関数、共通ブロックを定義すると、その名前の 定義がその場所で使用されたり、リンク・エディット・エラーが発生する場合があります。

以下の一般的な解決方法を試行して、このような種類の名前の矛盾を回避するための参考にしてください。

-qextname オプションを使用しない場合は、XL Fortran およびシステム・ライブラリー内の外部シンボルの 名前との競合を回避するために、特別な予防措置をとる必要があります。

プログラムに実際のルーチンを定義せずに、 サブルーチン名または関数名を使用することがないように注意してください。 その名前がいずれかのライブラリーの名前と競合すると、 プログラムはルーチンの間違ったバージョンを使用して、 コンパイル時エラーまたはリンク時エラーを作成しない場合があります。 IBM Copyright 2003