G77(1)

名前
g77 - GNU プロジェクトの F77 コンパイラ (v0.5.18)

書式
g77 [ option | filename ]...

警告
このman pageに含まれている情報はGNU Fortranコンパイラの完全な文書 からの抜粋であり、オプションの意味のみに限定したものである。

このman pageはボランティアが維持したいと考えたとき以外は最新には保たれて いない。 man pageとソフトウエアとの間に差異が認められた場合は、 Infoファイルを参照してほしい。Infoファイルは正式な文書である。

このman page中の古い記述が著しい混乱や不満を引き起こすと我々が判断した場 合は、このman pageの配布を中止する。 GNU Fortranの他の維持作業に時間を取られるので、この逆のこと、 つまり、Infoファイルを更新するのにあわせてman pageも更新する ことは実際的でない。 man pageは旧式のものであり、man pageの維持によって他の 仕事に費やす時間を減らすべきではないとGNUプロジェクトでは考えている。

完全で最新の文書としては、Infoファイル`g77 ' 若しくはマニュアル Using and Porting GNU Fortran (for version 0.5.18)
 - GNU Fortran の使用と移植(バージョン0.5.18) - を参照のこと。両者ともTexinfoのソースファイル g77.texi から作成される。

使用しているシステムに `info ' コマンドがインストールされていれば、 g77 が正しくインストールされていない場合以外は コマンド `info g77 ' が機能するはずである。 使用しているシステムに `info ' が備わっていないか、若しくはさしあたってその使用を避けたい場合は、 g77 が正しくインストールされていない場合以外は コマンド `more /usr/info/g77.info* ' が機能するはずである。

もし g77 が正しくインストールされておらず Infoファイルに容易にアクセス出来ない場合は、 システム管理者、若しくは (もし誰だか知っている場合には) g77 のインストールを行った者に問題の修正を依頼すること。

説明
CコンパイラとF77コンパイラは統合されている。 つまり、 g77 は F77を認識させるためのオプションを付けてgccを起動する ためのプログラムである。 gcc は４つの段階、つまり、 前処理、コンパイル、アセンブル及びリンクの各段階 のうちのひとつまたはそれ以上の段階を通して入力ファイルを処理する。 このman pageは、いくつかの一般的なオプションの要約をも含んではいるが、 F77に特有の側面について のみ 詳細な記述がなされている。 このコンパイラのより詳しい説明は gcc(1) を参照のこと。 GNU Fortranの完全な文書を読むには infog77 と入力せよ。 F77のソースファイルには接尾辞 `.f 'を用いる。 cpp(1) によって前処理を施されるF77ファイルには 接尾辞`.F 'を用いる。

オプション
多くのコマンドラインオプションがあり、その中には 最適化や警告、コード生成を詳細に制御するものが含まれている。 これらのオプションは gcc 及び g77 に共通である。 全てのオプションについて完全な情報を得るには gcc(1) を参照せよ。 個々のオプションは分離されていなくてはならない。 つまり、`-dr ' は `-d -r ' とは全く異なったものである。 たいていの `-f ' 及び `-W ' オプションには、例えば -fname と -fno-name (あるいは -Wname と -Wno-name )のような、ふたつの逆の書式がある。 ここではディフォルトではない方の書式のみを示す。

-c  ソースファイルをコンパイルまたはアセンブルするが、リンクは行わない。 コンパイラの出力は個々のソースファイルに対するオブジェクトファイルである。

-Dmacro
    マクロ macro を、その値を文字列`1 'として定義する。

-Dmacro=defn
    マクロmacro の値を defn と定義する。

--driver=command
    `g77' に `gcc' の代わりに command を起動して仕事をさせるように指示する。 例: GNU Fortran を作成した後の(しかしインストールを行なっている必要はない) gcc作成ディレクトリ内で、
      ./g77 --driver=./xgcc -B./ foo.f

-E  前処理段階終了後停止し、本来の意味でのコンパイラは起動しない。 この出力は前処理が行われたソースコードであり、これは標準出力に送られる。

-g  オペレーティングシステム固有の形式で(DBX又はSDBまたはDWARF用に) デバッグ用の情報を生成する。 GDBもまたこのデバッグ用情報を用いることが出来る。 DBX形式を用いる大抵のシステムでは、`-g オプションを指定するとGDBのみが用いることが出来る特別なデバッグ情報が 使用可能となる。 他のほとんどのFortranコンパイラとは異なり、GNU Fortranは `-g ' を `-O ' と同時に用いることが出来る。 最適化されたコードのとる近道の実行経路は時折驚くべきものとなるかもしれない。 つまり、 宣言した変数が全く存在しないかも知れないし、 制御の流れが予期もせぬところに一時的に移動してしまうかも知れない。 あるいは、計算結果が定数であったり既に値が得られていたりするために 全く実行されない文があるかも知れないし、 ループから外に取り出されたために異なった場所で実行される文もあるかも知 れない。 しかしながら、最適化された出力コードのデバッグは可能である ことが判明している。 バグのある可能性のあるプログラムに最適化を行うことは合理的なことである。

-Idir
    ディレクトリ dir をインクルードファイルを探索するディレクトリのリストに追加する。

-Ldir
    ディレクトリ dir を `-l ' の探索ディレクトリのリストに追加する。

-llibrary
    リンク時に library という名前のライブラリを用いる。

-nostdinc
    ヘッダーファイルを通常のシステムディレクトリからは探索しない。 -I オプションで指定したディレクトリ(及び、適切ならばカレントディレクトリ) のみを探索する。

-O  最適化を行う。 最適化を施したコンパイルには幾分か時間が余計にかかるとともに、 大きな関数に対しては多くのメモリを余分に消費する。 より詳細な最適化オプションについてはGCCドキュメンテーションを参照せよ。 特にループの展開(loop unrolling)の項目は、典型的なFortran数値計算プログ ラムにとって調べて見る価値があるだろう。

-o file
    出力を file という名のファイルに保存する。

-S  本来の意味でのコンパイルの段階の後で停止する。アセンブルは行わない。 出力は指定した各非アセンブラ入力ファイルに対するアセンブラコードファイル である。

-Umacro
    マクロ macro を未定義にする。

-v  各コンパイル段階を実行するためのコマンドを(標準エラー出力に)表示する。 また、コンパイラドライバプログラム及び前処理プログラム及びコンパイラ本体 のバージョン番号を出力する。 g77自身のバージョン番号と、それが基づいているGCC配布物の バージョン番号は別のものである。 `gcc' の実際の起動を行なわせないためには、( `true' は単に成功の状態変数を返すだけのUNIXコマンドの名前であるから) `--driver=true' を用いる。 コマンド `gcc -v' はg77及びGCCのバージョン番号をはっきりさせるのに適切なコマンドである。 ただし、このコマンドは `ld' からの無関係なエラーメッセージを表示するだろう。

-Wall
    マクロに関連したものを含めて、避けるべきであると推奨され且つ、 簡単に避けることが出来ると考えられる用いられ方がなされた際に、警告を発する。

ファイル
file.h C ヘッダー (前処理プログラム) ファイル
file.f Fortran ソースファイル
file.for Fortran ソースファイル
file.F 前処理されるFortranソースファイル
file.fpp 前処理されるFortranソースファイル
file.s アセンブリ言語ファイル
file.o オブジェクトファイル
a.out リンク編集後の出力
TMPDIR/cc*    テンポラリファイル
LIBDIR/cpp    前処理プログラム
LIBDIR/f771    コンパイラ
LIBDIR/libf2c.a    Fortranランタイムライブラリ
LIBDIR/libgcc.a    GCCサブルーチンライブラリ
/lib/crt[01n].o    スタートアップルーチン
/lib/libc.a    標準Cライブラリ、
intro(3) を参照。
/usr/include #include ファイルの標準ディレクトリ
LIBDIR/include    gccの
#include ファイルの標準ディレクトリ LIBDIR は通常 /usr/local/lib/ machine/version である。
TMPDIR は通常は環境変数 TMPDIR によって決められている (ディフォルトは /usr/tmp が使用可能であればこのディレクトリ、そうでなければ /tmp )。

関連項目
gcc(1), cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
info ファイルの `g77', `gcc', `cpp', `as',`ld', 及び `gdb' エントリ。
Using and Porting GNU Fortran (for version 0.5.18)
 - GNU Fortranの使用と移植 (バージョン0.5.18用) -, James Craig Burley; Using and Porting GNU CC (for version 2.0)
 - GNU CCの使用と移植 (バージョン2.0用) -, Richard M. Stallman; The C Preprocessor
 - C 前処理プログラム -, Richard M. Stallman; Debugging with GDB: the GNU Source-Level Debugger
 - GDBを用いたデバッグ: GNUソースレベルデバッガ -, Richard M. Stallman and Roland H. Pesch; Using as: the GNU Assembler
 - asの使用法: GNUアセンブラ -, Dean Elsner, Jay Fenlason & friends; gld: the GNU linker
 - gld: GNU リンカ -, Steve Chamberlain and Roland Pesch.

バグ
バグの報告の仕方に関する説明は、g77配布物中の DOC ファイルを参照せよ。

COPYING
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.

著者
GNU CCのコントリビュータに関してはGNU CCのマニュアルを参照のこと。 GNU Fortranのコントリビュータに関してはGNU Fortranのマニュアルを参照のこと。

翻訳者
古高和禎 <furutaka@Flux.tokai.jaeri.go.jp>
棚橋誠治 <tanabash@tuhep.phys.tohoku.ac.jp>