あらきけいすけの雑記帳

このページの内容が正しいとは限りません。なるべくミスらないよう、がんばるけど。過去の記事もまちがい等に気がついた時点で書き換えていきます。図版の一部は外部へのリンクなので、その図版サーバが落ちていたらゴメンナサイ。
検索エンジンで調べてたどり着いた人へ:上の「検索」で日記内の検索をかけてみるか、記事一覧を見てください。書いて欲しい項目のリクエストがあれば、コメント欄に書いて下さい(ただし高校数学程度の範囲内でね)。なるべく答えてみようと思います。

2009-02-13 (Fri)

[]Windows上でフリーのfortranコンパイラを導入して、簡単なプログラムを作成する

[2010.2.3]姉妹編の文法基礎を書きました。 fortran 基礎文法最速マスター - あらきけいすけの雑記帳

学生に fortran プログラミングをやらせようとして*1、Windows 上の fortran 90 環境を構築させようと思ったのだが、fortran ?R???p?C?? ?t???[ windows - Google ????, fortran ?R???p?C?? ???? windows - Google ???? で検索した結果、上位にくるページの情報があまりに古いので(Cygwin/g77, WATCOM, Salford みたいなのばっかりで MinGW にすらたどり着けない)、仕方がないので自分で書く。

2009年現在、Windows用のインストーラがあって、ビギナーでもワンクリックでインストールできる fortran 90 環境がある。
ここで使うのは gcc (GNU compiler collection)ベースの g95 というコンパイラ*2。以下のメモはハイパービギナー向け。"hello, world" コードの作成まで。

g95の導入

いま無料の windows 用の fortran 90 コンパイラで導入が簡単なものは g95 なんじゃないかと思う。ホームページが英語で書いてあるからってビビらないように。

  1. http://www.g95.org/ に入る
  2. Downloads の Binaries のページ http://www.g95.org/downloads.shtml"Information for Windows users" をクリック
  3. そこの g95-MinGW.exe の項目の Download from: http://ftp.g95.org/g95-MinGW.exe をクリックしてインストーラをダウンロードする(保存先はデスクトップでいいよ)。
  4. ダウンロードできた g95-MinGW.exe をクリックしてインストールを開始。
  5. インストール中のダイアログに全部「はい(Y)」「OK」と返事をすると。インストールができる。[2009.6.12改訂]
    1. まずインストーラの[実行(R)]をする
      f:id:arakik10:20090612121551j:image
    2. 「g95 MinGW インストーラである」という表示が出る。ここは[OK]を出す
      f:id:arakik10:20090612121552j:image
    3. インストール先フォルダ指定のところで Destination Folder を C:\g95 に設定する*3
      f:id:arakik10:20090612121553j:image
    4. [OK]して MinGW utilities and libs を入れる。
      f:id:arakik10:20090612121554j:image
    5. パス設定の画面で PATH = c:\g95\bin, LIBRARY_PATH = c:\g95\lib であることを確認して[OK]を出す。ここが g95 を利用する上で大事な「コンパイラ、ライブラリへのパスの設定」である。*4
      f:id:arakik10:20090612121555j:image
    6. Set LIBRARY_PATH for all users? に[はい(Y)]と答える。
      f:id:arakik10:20090612121556j:image
    7. Open README.txt now? は[OK][キャンセル]どっちでもいい。
      f:id:arakik10:20090612121557j:image
    8. インストールできたよ "G95 was successfully installed" と表示が出る。"Click OK to close"と書いてあるので[OK]をクリック
      f:id:arakik10:20090612121558j:image
    9. この画面になるので[Close]する
      f:id:arakik10:20090612121550j:image
これで C:\mingw フォルダの中に g95 がインストールされて、環境変数 PATH に C:\mingw\bin が書き加えられている*5

fortranプログラムの作成環境の作成*6

以下は Windows XP で実行した。

  1. まずデスクトップ上に fortran という名前のフォルダを作成する
  2. [スタート]→[すべてのプログラム(P)]→[アクセサリ]→[コマンドプロンプト]で右クリックをして[コピー(C)]をクリック
  3. fortran フォルダを開いて [編集(E)]→[貼り付け(P)] をすると、フォルダにコマンドプロンプトのショートカットができる。
  4. ここでコマンドプロンプトのショートカットを選択して [右クリック]→[プロパティ(R)] を選択して、「作業フォルダ(S)」の項目が空欄であることを確認する。(これでクリック時にそのフォルダがコマンドプロンプトのデフォルトの作業フォルダになる。)
  5. コマンドプロンプトのショートカットをクリックすると、コマンドプロンプトが起動する。
  6. ここで「g95[enter]」と入力して「g95: no input files」と表示されることを確認する。
  7. ここで「exit[enter]」と入力すると、コマンドプロンプトは消える。

fortranプログラムの作成

以下は Windows XP で実行した

  1. [ファイル(F)]→[新規作成(W)]→[テキストドキュメント]で「新規テキスト ドキュメント.txt」ができる
  2. これをクリックするとメモ帳が立ち上がる(はず)
  3. メモ帳で全部半角文字で次の3行を入力する
    write(*,*) 'hello, world'
    stop
    end
  4. [ファイル(F)]→[名前をつけて保存(A)]で「ファイル名(N)」を test.f90 「ファイルの種類(T)」を「すべてのファイル」にして保存
  5. コマンドプロンプトを起動して「g95 test.f90[enter]」を入力。フォルダの中に a.exe が出来る。
  6. コマンドプロンプトで「a.exe[enter]」を入力。入力の次の行に「 hello, world」が表示される。

アンインストール

  1. C:\mingw フォルダ内の uninstall-g95.exe を実行
  2. C:\mingw フォルダをバッサリと消す

C/C++プログラミングもしたい人は

  1. MinGW (Minimalist GNU for Windows)を先にインストールする。自動インストーラ "Automated MinGW Installer" MinGW-5.1.4.exe を MinGW - Minimalist GNU for Windows - Browse /MSYS/Extension at SourceForge.net からダウンロードする。
  2. MinGW をインストールする(C++プログラミングしたい人は g++ もインストールする)
  3. そのあとで g95 をインストールする


*1:何か大学には無意味な「C/C++信仰」のようなものがあって、fortranを「古い言語」だと勘違いしている学生や教師(情報系ではなくて、数理系、工学系)が結構いるが、大型計算機ではfortranを使うことが多い。その理由は(ボクが思うのには)fortranはメモリの使い方が割と明示的で、メモリアクセスの最適化が掛けやすいからである。逆にC/C++ではいつどこでインスタンスが作成されるか、メモリアロケーションが起こるか事前に読み切れない部分がある。

*2:gccの一部であるgfortranとは別物。インストールした感じ(あくまで主観)では g95 の方が idiot friendly user friendly な感じ。

*3:[2009.6.12]このステップでフォルダ名をしっかりと指定したほうが良いようだ。ディレクトリ名は"g95"でなくてもよい。
 ここで手元の環境で何度がインストール、削除を繰り返してみたのだが、Destination Folder は g95-MinGW.exe の入っているディレクトリになったり、以前インストールしたディレクトリになったりしたので、多分、以前のインストール時のレジストリを見ているのではないか。

*4:ここで bin, lib の前のディレクトリ名は Destination folder で指定したディレクトリ名になっているはず。

*5:g95はPATHの書き込みが自動でなされるところがありがたい。あとアンインストールは C:\mingw フォルダ内の uninstall-g95.exe を実行した上で、C:\mingw フォルダをバッサリと消すだけでOKなところもいい。

*6:これは「パス」「カレント・ディレクトリ」などの基礎事項を十分に把握できていない初級者でも、コマンドラインでカレントディレクトリ内での作業を行うための簡単な手法…のつもり。要点はコマンドプロンプトのショートカットを「作業フォルダ」の指定をわざと空白にした状態でプログラムのソースコードを置くディレクトリ内に置く。この状態で起動するとコマンドラインのカレントディレクトリがショートカットの入ったディレクトリになる。場合によっては cd コマンドを教育するより、ショートカットをコピーさせる方が、演習時間的にはローコストになることもある。

たろうたろう 2009/06/11 00:28 初めまして。
実は実行したいFORTRANのプログラムがありまして、あらきさんのこのページを参考にしてコンパイラを導入してプログラムを実行しようと試みております。
しかし、「fortranプログラムの作成環境の作成」のところで「作業フォルダ(S)の項目が空欄であることを確認する」とあるのですが、私がやったところですと空欄ではありません。もともとこの欄に書かれている文字列を消して、次のステップに行ってもうまくいきません。この場合はどうしたらよいのでしょうか。
プログラムに関しては素人でして、よくわかっていない部分も多いのですが・・・。
よろしければ回答をお願いいたします。

arakik10arakik10 2009/06/11 22:01 たろうさま
>もともとこの欄に書かれている文字列を消して、次のステップに行ってもうまくいきません。
ご質問ありがとうございます。取り急ぎの逆質問ですが、どのようなOSをお使いで、「何が」うまくいかないのか教えていただけないでしょうか?これでは、例えば
 「[作業フォルダ(S)]の項目を空欄にしたら、コマンドプロンプトが起動しなくなった」
のか
 「空欄にしても作業ディレクトリが、ショートカットをコピーしたフォルダにならなかった」
のか等々、ちょっと状況が把握できないのです。

たろうたろう 2009/06/11 23:26 返信ありがとうございます。
使っているOSはWindowsXPです。
「作業フォルダ(S)」空欄にし、コマンドプロンプトを起動して「g95 test.f90[enter]」と入力すると、コマンドプロンプトの画面に「'g95'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。
また、もともと「作業フォルダ(S)」に書かれていた文字列(今は消してしまったので、何とかかれていたかはわかりません)のままで同じ操作をしても、例のように「g95: no input files」とは表示されませんでした。
もちろんその先のメモ帳でプログラムを書き、コマンドプロンプトで「g95 test.f90[enter]」と入力しても、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。
正直、これがどういう状況かもよくわからない状況です。
デスクトップ上に「fortran」というフォルダを作るなど、すべて解説どおりにやったつもりなのですが・・・。
ど素人なもので説明がうまくできないのですが、よろしくお願いいたします。

たろうたろう 2009/06/11 23:29 先ほどの投稿の上から3行目、「g95 test.f90[enter]」は「g95[enter]」の間違いです。
申し訳ございません。

たろうたろう 2009/06/11 23:50 追加なのですが、デスクトップ上のコマンドプロンプトを起動すると画面に、「C:\MinGW\mingw'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
C:\Documentsand Setting\[ユーザー名]\デスクトップ\fortran>_」
と表示されています。

arakik10arakik10 2009/06/12 15:29 たろうさま、丁寧なご説明をありがとうございます。

>「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。

これはいわゆる「パスが通っていない」と言われる症状です。
「パス」とは「ソフトウェアがインストールされているフォルダのフルネーム」のことで、「パスを通す」/「パスが通っている」とは環境変数 PATH に(例えば g95 の)パスを書き込む/パスが書き込まれているということです。これが正しくないとg95コンパイラの正しいフォルダをPCが認識できないので。g95のインストールではこれが自動化されているのが、初心者向きだと思った理由です。

あらきも手元のPCで何度か g95 や MinGW を入れたり消したりしてみましたが、g95のインストーラの動作に対する勘違いがあったので、「g95の導入」のセクションを全面的に書き換えました。
勘違いは「インストールするフォルダは必ず C:\MinGW になり、パスもそれに合わせて通してくれる」と思っていたことです。

この問題は環境変数 PATH をきちんと設定すれば解決しますが、g95の場合(MinGW+gcc,g++などを併用していなければ)PATHの最もイージーな再設定の方法は「g95を一旦、ばっさりと消して、フォルダ C:\g95 に再インストールする。再インストールの最中に PATH, LIBRARY_PATH の設定のダイアログに出るフォルダ名が C:\g95\bin C:\g95\lib であることを確認する」です。

環境変数 PATH が正しく出来ているかの確認の仕方は次の通りです;
 1.[マイ コンピュータ]で右クリックして[プロパティ]を出す
 2.[システムのプロパティ]ウィザードで[詳細設定]タブを選ぶ
 3.[詳細設定]タブの下から2段目にある[環境変数(N)]をクリックする
 4.[環境変数]ウィザードの[xxxのユーザー環境変数(U)][システム環境変数(S)]の中の[変数]に PATH, LIBRARY_PATH があるか調べ、値に正しいフォルダ名が書き込まれているか確認する

お試しいただければ幸いです。

たろうたろう 2009/06/12 22:44 ご丁寧な解説をありがとうございました。
問題は解決できました。

さらに質問なのですが、プログラムの文中に脱字などの誤りがあった場合、コマンドプロンプトにはどのように表示されるのでしょうか。またその誤りの箇所を発見・訂正するのによい方法はあるのでしょうか。ほかのソフトだとコンパイルの際に誤りの箇所を指摘するものもありますが。
何度も初歩的な質問をしてしまって申し訳ございませんが、よろしくお願いいたします。

arakik10arakik10 2009/06/13 06:43 たろうさま、問題解決ご苦労さまでした。よかった、よかった(^^
>プログラムの文中に脱字などの誤りがあった場合
これは書き間違い次第で千差万別ですね。文法的なエラーや警告が出るとき、コマンドプロンプトには、ソースコードの行番号が出ますから、それを手抜きせずに丁寧に読むのが第一でしょう。g95もコンパイル時に文法エラーを出してくれます。エラーの出方を知るには、上記のtest.f90のソースの write(*,*) をわざと writ(*,*) と書き換えてみるとか、いろいろやってみてはいかがでしょうか。
それでは

たろうたろう 2009/06/13 10:33 わかりました。いろいろやってみます。
ありがとうございました。

たろうたろう 2009/06/16 10:37 たびたびすいません。
実は今、fortranプログラムを書き終えて大量のエラーも何とか解決できたところなのですが、これを実行しようとしたところコマンドプロンプトの画面に以下のようなメッセージ
「C:\DOCUME~1\[ユーザー名]\LOCALS~1\Temp/cc97MsDI.o:k.f90:(.text+0x29a4):undefined reference to `_darsin_'」
が表れて、a.exeファイルが作成されません。
これはいったいどういう意味のメッセージなのでしょうか。「k.f90」というのはファイル名です。
できればその解決法も教えていただけるとうれしいです。
コンピュータに関してはわからないことが多くて、あらきさんを頼りにしてしまうのは本当に申し訳ありませんが、よろしくお願いいたします。

arakik10arakik10 2009/06/17 17:42 たろうさま
"undefined reference to" というのは、"reference"すなわち変数名、関数名、サブルーチン名などが定義されていないということですから、まずは名前の書き間違い(ここでは"darsin"がミススペル)がないかどうか、まず精査してみてください。

kkkk 2009/06/26 14:39 インストールしてみたのですが
No such file:No such file or directory
とでます。たしかにフォルダ内にf.90のファイルを置いているのですが・・・わかりません

arakik10arakik10 2009/06/28 13:41 kkさま、コメントありがとうございます。
正直、これだけの情報では原因の特定は難しいです。根拠レスのヤマカンで回答すると「コマンドプロンプトがf90のファイルと同じフォルダから起動されていない」あるいは「コマンドプロンプトのショートカットのプロパティで[作業フォルダ]が空欄になっていない」のではないでしょうか。
もし違っていたら、もう少し細かい状況を教えていただけないでしょうか。

じろうじろう 2009/07/06 22:45 突然すいません。質問させてください。

Vistaをつかっているんですが、プロパティーのなかに作業フォルダというのが見つかりません。どうすればいいのでしょうか?

あと、コンパイルの実行をしようとすると、
No such file or directry
と出るんですがこれは何ですか?すべてのフォルダにしてほぞんしてあります。
プログラムも全く同じものなんですが・・・・

よかったら、助けてください。

じろうじろう 2009/07/06 22:50 連続ですいません。今見たら作業フォルダがありました。しかし、空欄にしても
No such file or directry
が出てしまいます。お願いします。

じろうじろう 2009/07/06 23:03 再びすいません。
No suchは何とか解決したんですが、
今度はUnclassifiable statement at(1)と出てきます。何が分類できないのでしょうか????

じろうじろう 2009/07/06 23:19 すいません。PROGRAMで囲んだらできました。
お騒がせしました。本当にありがとうございました。

ともとも 2009/07/16 13:55 vistaを利用しています。指示どうりにインストールを終え、コマンドプロンプトを開き、作業フォルダを空欄にし、g95 [enter]と入力すると、g95::No such file or directryと表示されます。何か解決策ありましたらよろしくお願いいたします

arakik10arakik10 2009/07/18 11:07 じろうさま
 きちんと動作できたようで、おめでとうございます

ともさま
 こまかい状況がわからないのですが "No such file or directory" は「パスが通っていない」という状況だとおもいます。コマンドプロンプトで "PATH" という命令を打ち込んでみて、表示されたフォルダ名のリストの中に g95 のフォルダがあるか確認してみて下さい。

ともとも 2009/07/19 02:40 早速のご対応ありがとうございます。コマンドプロンプトにてPATHという命令を打ち込んだところ、C:\g95\binという文字は出てきたのですがこれで良いのでしょうか?プログラムについては初心者なのでいろいろと分からない事が多く申し訳ございません。
g95と付くものは、これしか見つからなかったのですが…。

arakik10arakik10 2009/07/19 05:02 ともさま
 回答ありがとうございます。PATHは通っているようなので、"g95:: No such file or directory"はg95がきちんと起動していて、g95が「ファイルがない」と反応しているようですね。多分g95のインストールはできているっぽい。次はfortranプログラムの作成を実行してみて下さい。

ともとも 2009/07/19 12:23 早速のご回答ありがとうございます。プログラムを書いてみたところちゃんと走りました。どうやらコマンドのうち間違いだったようです。ご迷惑おかけしました。ありがとうございます!無事解決しました!

初心者初心者 2009/09/09 22:14 すみません、質問です。
ここに書いてあるように、すべてインストール、設定を行ったつもりなのですが、
g95 test.f90
とプロンプトで打つと、
This application has requested the Runtime to terminate it in an unusual way.
Please contact the aplication's support team for more information.
と出てきて、a.exe が作成されません。
どうしたらいいでしょうか。
ちなみに、Windows XP を使ってます。

arakik10arakik10 2009/09/12 03:01 初心者さま
詳しいエラーメッセージをありがとうございます。これだけまとまった文があると調査がやり易いです。このメッセージ文をそのままGoogleにかけてみると、多種多様なソフトの*.exeに対して同じ文面のメッセージが出ているので、これはg95ではなく、初心者さまが今お使いのWinXPとその上で動いている「何か」との兼ね合いで起きているエラーで、WinXPがメッセージを吐いているのかなあ…と思います。

手元のPCで状況を作れないので細かいことが全くわかりません。ごめんなさい。

こんなとき自分なら…多分…g95のアンインストール、インストールを何度かやってみます…が、それでg95が使えるようになる保証はありません。ほんとにごめんなさい。

初心者初心者 2009/09/13 19:07 お返事ありがとうございました。
インストールのやり直しを何度か試みましたが、
同じメッセージが出るだけでした。
g95はあきらめようと思うので、
もし、g95以外におすすめのフリーコンパイラがあったら、教えてください。

arakik10arakik10 2009/09/14 15:36 初心者さま
g95 と似たものに gfortran (fortran90以降のfortranに対応)があります。 http://gcc.gnu.org/wiki/GFortran
これは gcc (GNUプログラミング言語コンパイラ集)の一部だそうです。
また windows 用の gcc のお手軽インストーラ付きパッケージに MinGW http://www.mingw.org/ というものがあり、その中に g77 (GNUのfortran77)があります。

初心者初心者 2009/09/14 19:01 お返事ありがとうございます。
とりあえず、gfortranをインストールしてみましたが、結果は一緒でした。

もしかしたら、プロンプトの方に問題があるのかもしれないです。

プロンプトを開くとき、普通にアイコンをクリックしたり、「ファイル名を指定して実行」で cmd と打つと、プロンプトは開かず、画面全体が一度消えて、元に戻るんです。
でも、右クリックから、「別のユーザーとして実行」とし、「許可されていないプログラムの動作からコンピュータとデータを保護にする」にチェックをつけて OK とすると、一応、プロンプトは開くんです。ちなみに、チェックをつけないと、同じように画面が消えます。

こうやって、プロンプトを開いて、g95 や gfortran をしようとしていたんですが、このことと、エラーが関係があるかもしれません。

よろしければ、アドバイスを下さい。

arakik10arakik10 2009/09/15 16:04 初心者さま
詳しいご説明をありがとうございます。コマンドプロンプトの挙動があやしいですね。ちょっと g95 なんかを小手先でいじる程度の問題ではないようにも思われますが、僕もOSの絡む部分は素人なので、残念ですがコメントできません。
もしボク個人に同じ問題が出たら…多分…OSの再インストールからえいやっとやるでしょう。パソコンよくわかりません。m(__)mいい加減な返事で済みません。

たくやたくや 2009/09/18 00:04 親切な解説有り難うございます。何度も挫折したFortranコンパイラのインストールが、十分程でできました。つまずきやすいところも、細部にわたる親切な解説が有ったため、迷わずできました。感謝しています。

kenjikenji 2009/10/14 09:50 初めまして。ここのページを拝見させて頂き、fortranを作成しようとしております。
コンパイル後にでてくる下記のメッセージについて教えて下さい。
「ld: crt2.o:No such file: No such file or directory」
No such file or directoryにつきましては、過去の質問の中でパスを
確認するようにとありましたので、確認しましたが、大丈夫でした。
お手数をお掛けしますが、ご返事をよろしくお願い致します。

arakik10arakik10 2009/10/15 06:19 kenjiさま
詳しいエラーメッセージをありがとうございます。"g95 ld: crt2.o" でググってみると(ほとんど英語のページばかりですが) crt2.o というのはランタイム環境のオブジェクトファイルのようです。

プログラムのコンパイル(ビルドとも言う) "g95 hoge.f90" を実行すると、実は2段階のステップが動きます:(1)「fortranのソースコードを機械語のファイルに書き換える」コンパイルと、(2)「その機械語のファイルにOSとのやりとりや、呼び出した組み込み関数などを実行する機械語のファイルをくっつける」リンクです。crt2.oはこの2番目のリンクのステップで必要になるファイルのようです。

原因は crt2.o が「あるべきところに無い」からなのですが、上記のインストールの 5. 6. にある環境変数 LIBRARY_PATH の設定がうまくいっていない可能性が大です。次のことを試してみてください

(1) [スタート]→[検索(s)] で crt2.o という名前のファイルを探す(目的は crt2.o の有無とそのフォルダ名の確認です)。

(2) [マイコンピュータ](右クリック)→[プロパティ(R)]→[詳細設定]→[環境変数(N)]を開いて LIBRARY_PATH を探して crt2.o の入っているフォルダ名と一致しているか確認してください

多分、「一致していない」「どれかが無い」になっていると思います。解決法は「 LIBRARY_PATH を正しく設定する」「crt2.oをそのフォルダに入れる」です。(一番、お手軽な方法は「ばっさり消して、再インストール」なのですが…。)

kenjikenji 2009/10/15 10:01 arakik10さま
さっそくのご返事ありがとうございます。
環境変数の LIBRARY_PATH が設定されていませんでした。
設定し直したところ、うまくコンパイルでき、プログラムもきちんと動きました。
大変たすかりました!
ありがとうございました!

Soil & WaterSoil & Water 2009/10/23 15:08 はじめまして."g95"のインストールに関して教えて下さい.
現在,Windows XPとWindows Vistaの2つのOSを使用しており,両者に"g95"をインストールしてみました.
XPの方は,"Hello World"の表示に成功しました.しかし,Vistaの方でコンパイルしようとすると,
 g95: installation problem, cannot exec 'as': Invalid argument
という表示が出てしまい,.exeファイルが作成されません.
インストールが上手くいっていないのかと思い,一度"g95"を削除し,再インストールを行ってみましたが,結果は同じです.
どのような対処をすればよいのでしょうか?お手数ですが教えて下さい.
よろしくお願いします.

ともきともき 2009/10/23 22:35 すいません。Windows Vistaを使っているんですがコマンドプロンプトで「g95 test.f90[enter]」と入力しても、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。
上の質問の書いてあったのを試してみたのですが変数の中にLIBRARY PATHがありません。あとPATHとうつとPATH=C:g95\binと出てきたのですがこれは正しいですか?

arakik10arakik10 2009/10/24 08:36 Soil & Water さま
詳しいエラーメッセージをありがとうございます。"g95: installation problem, cannot exec 'as': Invalid argument" でググると g95 のページに「\g95\bin\as.exe と \g95\bin\ld.exe を \g95\lib\gcc-lib\i686-mingw32\4.2.1\ フォルダにコピーしてみてくれ」と書いてあります(多分、フォルダ名の中の "4.2.1" はバージョン名なので自分のインストールしたバージョンになっていると思います)ので、お試しください。(ボクの手許のVistaではこのエラーは起きませんでした。)

http://www.g95.org/windows_faq.shtml#Q._5.

ともきさま
詳しいエラーメッセージをありがとうございます。このメッセージはパスが通ってないっぽいですね。で、コメントの中の

>あとPATHとうつとPATH=C:g95\binと出てきた

これは C:\g95\bin (コロンのあとの円マーク)の打ち間違いでしょうか?この一文字の差でアドバイスが変わってくると思うので。

Soil & WaterSoil & Water 2009/10/24 11:17 arakik10 さま
ありがとうございます.二つのファイルをコピーしてみたところ,.exeファイルが作成されました.
as.exe ファイルと,ld.exe ファイルはbinフォルダーとlibフォルダーの二つに入っていることになりますね.これは問題ないのかどうか…?は今のところわかりませんが,また問題が発生した時には,お力をお貸しください.
ありがとうございました.

ともきともき 2009/10/25 08:27 arakik10さまありがとうございます。
たびたびで申し訳ありません。変数PATHが間違っていたのでPATH=C:\g95\binと表示されるように直しました。が一向に内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。上に書いてある手順と異なったところといえば手順5のあとにvista detected add\gcc-lib\i686-pc-mingw32\4.0.4 recomendedといった表示がでたところです。自分はこのにNO
と答えました。
初心者なのでいろいろお手数掛けますがどうかよろしくお願いします。

arakik10arakik10 2009/10/26 20:16 ともきさま
>変数PATHが間違っていたのでPATH=C:\g95\binと表示されるように直しました
 それでも「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」という表示が出るのですね。これは「C:\g95\bin フォルダを見に行ったが g95.exe が見つからん」とVistaが言ってるんでしょうね。
 まず念のために C:\g95\bin に g95.exe があることを、C:\g95\bin フォルダを開くか、ファイル名 g95.exe で検索をして確認してみて下さい。その結果次第で次の可能性を探ることになりそうですね。
 お手数ですがお願いします。

ともきともき 2009/10/27 00:27 arakik10さん
ありがとうございます。
今C:\g95\binのフォルダを開いてみたのですがg95.exeはありました。
次の可能性を探してもらえないでしょうか?
お手数かけてすいません。
宜しくお願いします。

arakik10arakik10 2009/10/28 11:19 ともきさま
 ご確認ありがとうございます。C:\g95\bin\g95.exe あるんですね…ううむ…。と、なると環境変数PATHの設定かなあ。多分、環境変数 PATH は g95 だけではなく、%SystemRoot%とか、これまでにインストールしたソフトのフォルダ名がずらっと書いてあるはずですね。
 文字列 "C:\g95\bin" の前後がセミコロンできちんと区切られているか調べてみてください。
 あと C:\g95\bin\g95.exe があるなら、コマンドプロンプトで "C:\g95\bin\g95.exe test.f90" と打ち込んで[Enter]すると、コンパイルが始まるのでやってみてください("test.f90"は適宜 fortran プログラムのファイル名にしてください)。「PATHの設定」とは「"C:\g95\bin"と書くのをサボる」ための技術なので、いざとなったら絶対パス(ファイル名をドライブ名、フォルダ名をサボらず全部書く)で書けば動作するはずです。

you5you5 2009/11/26 10:46 お世話になっております。
g95インストールしました。
実は、他人から提供されたプログラムを使う機会があるのですが、それはmakefileを使ってコンパイルするようになっています。
g95でのmakefileの使い方を探してみましたが、どうも見当たりません。
もしご存知でしたら教えていただけないでしょうか?
よろしくお願いいたします。

けんけん 2009/11/26 17:07 はじめまして、このサイトでg95をインストールして上記の実行テストまでできたのですが、分からないことがあるので質問させていただきます。
他のサイトでインストールしたCowanプログラムのbatファイルを実行したいのですが、どういう手順で行えばよいのでしょうか?
本当に初心者なので全く分からないのです。
もしよろしければ教えて下さい。よろしくお願い致します。

arakik10arakik10 2009/11/27 05:57 you5さま
Windows の g95 は MinGW という Windows 用の gcc に依存しています。まず mingw32-make.exe というファイルがあるかどうかを調べてみて下さい。


けんさま
batファイルとは「バッチファイル」というもので、実行したいコマンドを書き連ねたファイルです。ですからそのファイル名をコマンドプロンプトで打ち込めば動き始めるはず
…ですが、バッチファイルはそのプログラムの作者の環境で作成したものですから、あなたの環境と作者の環境が違えば、動かない可能性が大です。個別のプログラムのことはよく分からないので、そのプログラムに付随したreadme等のドキュメント(説明のファイル)をきちんと読んでみてください。

みちみち 2009/12/16 21:37 はじめまして。g95をインストールしたのですが、うまく動いてくれません・・・
fortranプログラムの作成でtest.f90をコンパイルすると、g95: installation problem, cannot exec 'f951'などと出てきたので、
http://www.g95.org/windows_faq.shtml#Q._4.に書いてあることを自分の低レベルな英語知識で訳して実行してみました。
しかし、今度はld: cannot find -lf95 と表示されてしまいます…
C:\g95\bin\g95.exe test.f90と打ち込み実行するとうまくいくので、パスの問題だとは思うのですが、そこからがよくわかりません…

ちなみに、Vistaを使用しています。
ユーザー環境変数・システム環境変数共にのPATHはC:\g95\binでLIBRARY_PATHはC:\g95\lib;C:\g95\lib\gcc-lib\i686-mingw32\4.0.4としています。

\g95\lib\gcc-lib\i686-mingw32\4.0.4\と\g95\binの両方にf951.exeがある状態です。

よろしくお願いします

arakik10arakik10 2009/12/18 05:59 みちさま
ボクの手許の環境ではこの不具合をわざと起こせないので、よくわかりません。ごめんなさい。

>C:\g95\bin\g95.exe test.f90と打ち込み実行するとうまくいくので、パスの問題だとは思うのですが、
これで a.exe が動いているとすると、g95のインストールはうまくいっているようですし、フルパスでコマンドを書くとライブラリのリンクもうまくできているみたいですね。単純にパスの設定と考えていいのか、僕にもわかりません。

> 今度はld: cannot find -lf95 と表示
ld: cannot find "-lf95" MinGW g95 でググってみたのですが、それっぽい情報をみつけられませんでした。

実はボクにも g95 のライブラリパスの設定で分からないことがあるのです。いまボクが一番よく使っている環境は g95 を MinGW の gcc を導入した後で、gcc と同じフォルダにインストールしているのですが、この環境だと LIBRARY_PATH を設定しなくても g95 のコンパイルと実行が出来てしまうのです。

力になれなくてすみません。

きんたろうきんたろう 2010/04/11 17:17 2010年4月9日でのインストーラはライブラリパス環境変数の名前を
G95_LIBRARY_PATH
としているようで、これをLIBRARY_PATHに変えてやると
うまく動きました。

ぱいなぷぱいなぷ 2010/06/22 19:51 非常に有用な情報の提供ありがとうございます.
提示されている手順どおりに操作しましたところ,Windows7でも無事使えましたので
報告させていただきます.
ありがとうございました.

こいぬこいぬ 2010/08/22 18:19 無事インストールでき「g95[enter]」と入力して「g95: no input files」と表示されることは確認できたのですが、
g95 test.f90と入力したら
ld:unrecognized option '--sysroot='
ld:use the --help option for usage information
とでてきます。
これはどういう意味なのでしょうか?

arakik10arakik10 2010/08/23 04:22 きんたろうさま、ぱいなぷさま、有益な情報ありがとうございます。

こいぬさま
> ld:unrecognized option '--sysroot='
これについては 'g95 "--sysroot="' でググると、g95 + windows の FAQ (英語のページです)の Q.3 (http://www.g95.org/windows_faq.shtml#Q._3.) に「環境変数 PATH に例えば c:\g95\bin; c:\g95\lib\gcc-lib\i686-pc-mingw32\4.1.2; を加えてみて下さい」とあります。(ディレクトリ名はインストール先に応じて適宜変えてください)まず FAQ を読んで、修正を実行してみてください。

ボボボボ 2011/06/04 21:28 超ナイスな記事です!
ググってから10分で hello world が出来ました!

韓信韓信 2011/07/02 11:45 fortranプログラムの作成の段でファイルの種類をすべてのファイルに変更とあるのですがすべてのファイルとして保存してもテキストファイルとして保存されてしまいます。
解決法があれば教えてください。

arakik10arakik10 2011/07/06 17:16 ぼぼさま、この記事がお役に立てて良かったです。

韓信さま
>すべてのファイルとして保存してもテキストファイルとして保存されてしまいます。
fortranプログラムのファイルはテキストファイルなのでそれでOKです。保存したフォルダを開いて、ファイルの名前を (なんとか).txt から (なんとか).f90 に強制的に書き換えてやってみてください。

むかいむかい 2011/07/08 12:50 はじめまして。とある学生です。
FORTRANが必要となりこのページからダウンロードさせていただきました。
説明も分かりやすかったですし、ありがとうございます!!

素人でありかつ、私の周りにプログラムをできる方がいないのでお聞きしたいことがあります。
このページとはあまり関係ないのですが、もしよろしければ教えていただきたいと思いますのでよろしくお願いします。

私は現在研究で熱力学平衡モデルを使ったプログラムをしようと考えています。そこで「ISORROPIA ?」というソフト(?)をダウンロードしました。説明書が全部英語で英語の苦手な私には理解があまりできないのですが、このソフト(?)にはサブルーチンが入っていると書かれていました。また、FORTRANのコンパイルを用いるとも書かれていました。
ダウンロードしたら、アプリケーションファイルと短縮ダイヤルがダウンロードされました。
FORTRANの書き方も大体勉強しました。しかし、これらをどのように使えばいいのか分かりません。
ISORROPIAに入っているサブルーチンの呼び起こし方が特に分かりません。

情報が少ないのですが手順とかで分かる点がありましたらお願いいたします。

arakik10arakik10 2011/07/09 17:32 むかいさま
個別のコードについては私にも分からないことが多いです。ただサブルーチンを自作のfortranコードに組み込むには、サブルーチンのソースコードを自分のコードにコピペしてコンパイルするか、サブルーチンの部分を先にコンパイルしてできたオブジェクトファイルをリンクすることになるでしょう。その部分はがんばって英語のドキュメントを読むしかないでしょう。力になれなくてごめんなさい。

むかいむかい 2011/07/10 14:47 arakik10様
わかりました。少し前に進みそうです。
ありがとうございました。

こうこう 2011/10/04 20:31 はじめまして。
g95についてわからないことがあるので質問させていただきます。

このサイトの手順どおりに行ったのですが、コンパイルができません。
g95 test.f90 と入力したところ
lD: cannot find lm と表示されました。
自分なりに調べるとhttp://w.livedoor.jp/ykamae_linux-note/d/Fortran#content_2_11
上のサイトより、libm・・・が必要だと書いてありました。
そこで先頭にlibmのつくものを検索し、すべてfortranのフォルダ内に入れました。しかし、コマンドプロンプトに変化は起きず、行き詰ってしまいました。

少ない情報ですが、お気づきの点がございましたらご教授お願い致します。

こうこう 2011/10/04 21:39 g95を再度ダウンロードすることで解決することができました。
このサイトのおかげでfortranの使用環境が整いました。ありがとうございました!

arakik10arakik10 2012/02/05 06:21 かふか(AKA kafuka-kun|tuntukutukutuku22|ID:P1C6nLCv)さまの「Linux(Ubuntu)上で」「gfortranは動くがg95は動かない」「emacsでファイルが読み込めない」というご質問を消しました(Yahoo知恵袋、Ubuntu日本語フォーラム等で回答が得られることをお祈りします)。
ここでは「Windows上で」「fortranコンパイラをインストールし」「fortranソースコードをコンパイル、実行」するまでのこと、それが出来ないときに原因を一緒になって考えることを扱っています。

じゅんじゅん 2012/02/15 04:18 はじめまして、fortranの使用環境を探していたところこちらのサイトにより使用できるようになりました。ありがとうございます。
質問なさせていただきたいのですが
.exeファイル作成時にa.exeではなくテキスト名をそのまま.exeファイルとして作成するにはどのようにすればいいのでしょうか?
例)g95.fのファイルを実行→a.exeではなくg95.exeのように設定できませんでしょうか

arakik10arakik10 2012/02/15 06:36
じゅんさま
g95 の日本語のマニュアル http://ftp.g95.org/G95Manual.jp.pdf の p.4 に
g95 -o [作りたいexeファイル名] [fortranソースファイル名]
と書いてありますので、実行してみてください。マニュアルは手許においておくと便利ですよ。

KSKS 2012/06/03 20:12 はじめまして,丁寧な解説ありがとうございます.
プログラムの勉強をはじめようと思いまして,このページを参考にさせていただきました,ありがとうございます.
急な質問お許しください.
現在使っているOSはvistaです.このページの通りインストールし,Cドライブ直下にg95をインストールし,コマンドプロンプトでg95と入力しno input filesまではできました.

上記と全く同じプログラムをhello.f90としてg95ディレクトリ内に保存してコマンドプロンプトで入力したところ

g95: hello.f90: No such file or directory
と表示されます.他に保存場所も変えてみたのですが同様な内容です.
パス設定も確認しましたがg95のパスは正常のように思われます.(初心者の確認ですが...)

お忙しいところ恐縮ですが,ご教授のほどよろしくお願いたします.

KSKS 2012/06/03 21:21 度々すいません.
手持ちの参考書と手順がごっちゃになっていました.
デスクトップ上にfortranディレクトリを作成しそこにコマンドプロンプトとソースファイルを移動させることでhello worldと表示させることに成功しました.

しかし,なぜアクセサリから開いてC直下に作ったg95ディレクトリ内に作ったソースコード(もしくは,C直下に作ったソース用のディレクトリから)を実行させるようにすると上のコメントで記入した事態になるのか謎です.コマンドプロンプトの作業フォルダが空欄になっていないからでしょうか...

因みに「数値計算のためのFortran 90/95 プログラミング入門」というのを参考にしていたのですが,このサイトがなければ永久にg95が使えないところでした,ありがとうございました.

arakik10arakik10 2012/06/05 05:33 KSさま

>コマンドプロンプトの作業フォルダが空欄になっていないからでしょうか...
そのとおりです。コマンドプロンプトは起動時に「作業フォルダ」に指定したフォルダ(これを「カレントディレクトリ」と言います)のファイルを見る状態になっています。ここから cd というコマンドを用いて、fortran のソースコードのあるフォルダにカレントディレクトリを移動すれば、そのコマンドプロンプトを使って実行ファイルを作ることができます。「cd」「カレントディレクトリ」などのコマンドプロンプトの用法と命令については Google 等で調べて、覚えてください。最小限のコマンドを覚える手間は、おそらく Visual Studio や Code::Blocks のようなIDE(プログラム開発用のソフトウェア)のコマンドを覚えるよりは数が少なくて済むはずですし、文法の学習ではプログラムのサイズが小さいですからIDEを利用するのは大げさです。

>因みに「数値計算のためのFortran 90/95 プログラミング入門」というのを参考にしていたのですが
KSさまのお役に立てて幸いです。fortran に限らず、ほとんどのプログラミング言語の文法の教科書はコンパイラの導入から簡単なプログラム作成までが実用になる水準で書かれていないものです。この教科書(実は私も持っています)も初めてプログラミングにトライする人が実際にコードを作成するまでの役には立ちません。

NSNS 2012/07/02 22:13 非常にわかりやすい解説ありがとうございました。
「g95[enter]」と入力して「g95: no input files」と表示されることを確認するという項目まではできたのですが、テストファイルを実行すると、invalid instruction suffix for ‵push'というエラーが表示されます。何度かインストールし直したのですが、同じところでつまずきました。OSはWindows7です。お教えいただけるとありがたいです。よろしくお願いします。

arakik10arakik10 2012/07/04 11:52 NSさま、コメントありがとうございます。

>テストファイルを実行すると、invalid instruction suffix for ‵push'というエラーが表示されます。
エラーメッセージのおしらせありがとうございます。"invalid instruction suffix for ‵push'"でググって上位3件程度をパラパラと眺めると、64bit の Windows で 32 bit 用の .exe ファイルを直接、実行しようとしてコケたときに出るエラーのようです(100%の自信をもって「64bitのせい」とは言えませんが)。64bit用の fortran をインストールしてみるといいかもしれません。

JavaさんJavaさん 2012/10/21 20:29 ありがとうございます。
このサイトのおかげで無事コンパイラをインストールできました。
PC音痴の僕でもできるくらいわかりやすく手順が書かれていたのは素晴らしかったです。

あいあい 2012/11/15 23:42 初めまして。
作業フォルダ(S)を消して空白にして、g95[enter]と入力しても、操作可能なプログラムとして認識されません。自分は知識がないので全然わかりません。
よろしければ教えてください。

arakik10arakik10 2012/11/22 04:28 Javaさん さま
コメントありがとうございます。お役に立ててよかったです。

あい さま
>作業フォルダ(S)を消して空白にして、g95[enter]と入力しても、操作可能なプログラムとして認識されません。自分は知識がないので全然わかりません。
これだけでは状況がよく分かりません。おそらくは「パスが通っていない」状況のようですね。それについてはこのコメント欄の最初のあたりに対処の記録がありますので、まずそこを読んで、同じ手法で解決できないか試して下さい。他の人のコメントをよく読むことも解決につながることがあります。

よいこよいこ 2013/07/06 11:32 はじめまして。
ともき さま と同じ症状です。xpを使っています。g95[enter]と入力しても、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。
変数の中にLIBRARY PATHがありません。あとPATHとうつとPATH=C:\g95\binと出てきました。
また、C:\g95\binのフォルダを開いてみたのですがg95.exeはありました。
また、文字列 "C:\g95\bin" の前後がセミコロンできちんと区切られています。
コマンドプロンプトで "C:\g95\bin\g95.exe test.f90" と打ち込んで[Enter]をおすと
g95.exe: test.f90: No such file or directory
と 出ます。
よろしくお願いします。

よいこよいこ 2013/07/06 11:46 失礼しました。追加です。
[環境変数]ウィザードの[xxxのユーザー環境変数(U)]の中の[変数]に PATHはありましたが, LIBRARY_PATHはありませんでした。[システム環境変数(S)]の中の[変数]にはPATH,LIBRARY PATH も共にありました。値に正しいフォルダ名が書き込まれていました。

arakik10arakik10 2013/07/14 14:18 よいこさま
回答が遅くなってすみません。本家のg95サイトからWindows環境用のバイナリがダウンロードできなかったので、動作の再現が手許でできませんでした。

>g95.exe: test.f90: No such file or directory
この表示は test.f90 ファイルがコマンドプロンプトのカレントディレクトリ上に無いことを示しています。例えば、test.f90.txt で保存していたとか、コマンドプロンプトのカレントディレクトリが test.f90 を作成、保存したディレクトリと異なっている、…等が考えられます。

arakik10arakik10 2013/07/14 14:20 …本家 g95 サイトは Windows の面倒見が悪くなっているような…。

リンク元